Paano i-convert ang UTM Coordinates sa mga halagang Latitude at Longitude sa pamamagitan ng Excel VBA

Ipamahagi ngayon:

Sa UTM converter madali mong mako-convert ang UTM coordinates sa mga value ng Latitude at Longitude. Ang Universal Transverse Mercator (UTM) coordinate ay binubuo ng isang zone number, isang easting, isang northing at isang hemisphere (N/S).

Download na Ngayon

Kung gusto mong simulan ang paggamit ng software sa lalong madaling panahon, maaari mong:

I-download ang Software Ngayon

Kung hindi man, kung nais mong DIY, maaari mong basahin ang mga nilalaman sa ibaba.

Ihanda na natin ang GUI

Gaya ng ipinapakita sa larawan, iwan ang nangungunang 4 na hanay ng excel sheet para sa Map Datum, Zone at Hemisphere. Ang 3 value na ito ay gagamitin para sa lahat ng hanay sa Excel sheet. Sa Row 5, simula sa Column A, idagdag ang mga ito bilang mga header.

  1. DLS_KEY
  2. RM
  3. PAGSILANGAN
  4. NORTHING
  5. LATITUDE
  6. LONGITUDE

Ang value sa Column A hanggang Column D ay input at ang output ie, Latitude at Longitude ay ipinapakita sa Column E at FIhanda Ang GUI

Gawin nating pagpapaandar ito

Kopyahin ang script sa isang bagong module at ilakip ang macro sa button sa Sheet. Pakitiyak na ang iyong makina ay may Internet explorer. Kung walang IE hindi gagana ang script na ito.

Subukan natin ito

Kapag pinatakbo mo ang macro, madali mong masusubaybayan ang status mula sa status bar ng iyong Excel application. Dahil manu-mano kaming nag-udyok ng ilang pag-pause sa pagitan ng bawat conversion, ang macro ay maglalaan ng oras upang i-convert ang lahat ng iyong UTM coordinates sa Lat at Long value. Kapag naproseso na ang lahat ng mga tala, maaari kang makakita ng isang Pop-Up na mensahe sa screen. Kung ang macro ay hindi makapag-save ng data sa mga sheet, maaaring ito ay dahil sa katiwalian sa iyong Excel file. Ayusin ang sira na Excel file at patakbuhin muli ang script.Subaybayan ang Katayuan Mula sa Status Bar Ng Iyong Excel na Application

Isang Pop-Up na Mensahe sa Screen

script:

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

Panimula ng May-akda:

Si Nick Vipond ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang file ng doc at pananaw sa mga produkto ng software sa pagbawi. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.