Excel VBA vasitəsilə UTM koordinatlarını Enlem və Boylam dəyərlərinə necə çevirmək olar

İndi paylaş:

UTM çeviricisi ilə siz asanlıqla UTM koordinatlarını Enlem və Boylam dəyərlərinə çevirə bilərsiniz. Universal Transvers Merkator (UTM) koordinatı zona nömrəsi, şərq, şimal və yarımkürədən (N/S) ibarətdir.

İndi Download

İstəsəniz start proqram təminatından mümkün qədər tez istifadə etmək üçün aşağıdakıları edə bilərsiniz:

Proqramı İndi Yükləyin

Əks halda, DIY etmək istəyirsinizsə, aşağıdakı məzmunu oxuya bilərsiniz.

GUI-ni hazırlayaq

Şəkildə göstərildiyi kimi, Map Data, Zone və Hemisphere saxlamaq üçün excel vərəqinin yuxarı 4 cərgəsini buraxın. Bu 3 dəyər Excel cədvəlindəki bütün sətirlər üçün istifadə olunacaq. 5-ci cərgədə, starSütun A-dan seçin, bunları başlıq kimi əlavə edin

  1. DLS_KEY
  2. RM
  3. EASTING
  4. Şimal
  5. TƏQDİM
  6. UZUNLUQ

A-dan D Sütunları üzrə dəyər daxil edilir və çıxış, yəni Enlem və Boylam E və F Sütunlarında göstərilirGUI hazırlayın

Gəlin onu funksional edək

Skripti yeni modula kopyalayın və makrosunu Vərəqdəki düyməyə əlavə edin. Zəhmət olmasa maşınınızda İnternet Explorer olduğundan əmin olun. IE olmadan bu skript işləməyəcək.

Test edək

Makronu işə saldığınız zaman Excel proqramınızın status çubuğundan statusu asanlıqla izləyə bilərsiniz. Hər bir konvertasiya arasında əl ilə müəyyən fasilə verdiyimiz üçün makro bütün UTM koordinatlarınızı Lat və Long dəyərlərinə çevirmək üçün vaxt aparacaq. Bütün qeydlər işləndikdə ekranda Pop-Up mesajı görə bilərsiniz. Makro vərəqlərdə məlumatları saxlaya bilmirsə, bunun səbəbi Excel faylınızdakı korrupsiya ola bilər. Zədələnmiş Excel faylını düzəldin və skripti yenidən işə salın.Excel Tətbiqinizin Status Panelindən Statusunu İzləyin

Ekranda Pop-Up Mesaj

Ssenari:

Sub UTM_Converter()
    
' Place all your declarations here
    Dim i As Long
    Dim browobject As Object
    Dim obj1 As Object
    Dim obj2 As Object
    
    Set browobject = CreateObject("InternetExplorer.Application")
    
    browobject.Visible = False
    
'Process each row in the excle till the macro meets the last used row
    For r = 6 To 9
        
' Navigate to the URL to process data
        browobject.navigate "http://www.rcn.montana.edu/resources/converter.aspx"
        
' Inform Users about the status
        Application.StatusBar = "Macro is converting data. Please wait... Now at Row : " & r & " /// Total Rows : " & Sheets("UTM to LAT LON").Range("C" & Rows.Count).End(xlUp).Row
        
' As this is dynamic, we have to wait for the browobject to process input and generate output
        Do While browobject.Busy
            Application.Wait DateAdd("s", 1, Now)
        Loop
        Application.Wait (Now() + TimeValue("00:00:02"))
        
'Lets populate the form
        browobject.document.getElementById("mapDatum").Value = "1"
        browobject.document.getElementById("utmZone").Value = "14"
        browobject.document.getElementById("utmHemi").Value = "N"
'utmEasting
        browobject.document.getElementById("utmEasting").Value = Sheets("UTM to LAT LON").Range("C" & r).Value
'utmNorthing
        browobject.document.getElementById("utmNorthing").Value = Sheets("UTM to LAT LON").Range("D" & r).Value
        
        Set obj2 = browobject.document.getElementsByTagName("input")
        v_length = 0
        While v_length < obj2.Length
            If obj2(v_length).Value = "Convert Standard UTM" Then
                GoTo comehere
            End If
            v_length = v_length + 1
        Wend
        
        comehere:
        obj2(v_length).Click
' Wait while browobject loading...
        Do While browobject.Busy
            Application.Wait DateAdd("s", 1, Now)
        Loop
        Application.Wait (Now() + TimeValue("00:00:02"))
        
'Show converted data on the sheet
        Sheets("UTM to LAT LON").Range("F" & r).Value = browobject.document.getElementById("decimalLongitude").Value
        Sheets("UTM to LAT LON").Range("E" & r).Value = browobject.document.getElementById("decimalLatitude").Value
        
    Next r
        
' Show browobject
    browobject.Visible = False
    browobject.Quit
        
' Clean up
    Set browobject = Nothing
    Set obj1 = Nothing
    Set obj2 = Nothing
        
    Application.StatusBar = ""
'Inform User that entire process was completed
    MsgBox "Converted !", vbInformation, "UTM to LAT LON converter v1.0"
End Sub

Müəllif Giriş:

Nik Vipond məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc doc faylını təmir edin və Outlook bərpa proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com

İndi paylaş:

Şərhlər bağlıdır.