Kaip konvertuoti UTM koordinates į platumos ir ilgumos reikšmes naudojant „Excel VBA“.

Bendrinti dabar:

Naudodami UTM keitiklį galite lengvai konvertuoti UTM koordinates į platumos ir ilgumos reikšmes. Universalioji skersinė Merkatoriaus (UTM) koordinatė sudaryta iš zonos numerio, rytų, šiaurės ir pusrutulio (N/S).

Atsisiųsti dabar

Jei norite kuo greičiau pradėti naudoti programinę įrangą, galite:

Atsisiųskite programinę įrangą dabar

Kitu atveju, jei norite pasidaryk pats, galite perskaityti toliau pateiktą turinį.

Paruoškime GUI

Kaip parodyta paveikslėlyje, viršutines 4 „Excel“ lapo eilutes palikite žemėlapio duomenų, zonos ir pusrutulio reikšmėms įrašyti. Šios 3 reikšmės bus naudojamos visose „Excel“ lapo eilutėse. 5 eilutėje, pradedant nuo A stulpelio, pridėkite jas kaip antraštes.

  1. DLS_KEY
  2. RM
  3. RYTAS
  4. ŠIAURĖ
  5. LATITUDE
  6. ILGIAI

Įvedama vertė A–D stulpeliuose, o išvestis, ty platuma ir ilguma, rodomos E ir F stulpeliuoseParuoškite GUI

Padarykime jį funkcionalų

Nukopijuokite scenarijų į naują modulį ir pridėkite makrokomandą prie lapo mygtuko. Įsitikinkite, kad jūsų kompiuteryje yra „Internet Explorer“. Be IE šis scenarijus neveiks.

Išbandykime

Vykdydami makrokomandą galite lengvai stebėti būseną „Excel“ programos būsenos juostoje. Kadangi tarp kiekvienos konversijos neautomatiniu būdu padarėme tam tikrą pauzę, makrokomandai prireiks laiko, kad visos jūsų UTM koordinatės būtų konvertuojamos į platumą ir ilgumą. Kai visi įrašai bus apdoroti, ekrane pamatysite iššokantįjį pranešimą. Jei makrokomandos negalima išsaugoti duomenų lapuose, tai gali būti dėl sugadinto Excel failo. Pataisykite sugadintą Excel failą ir paleiskite scenarijų dar kartą.Stebėkite būseną iš „Excel“ programos būsenos juostos

Iššokantis pranešimas ekrane

scenarijus:

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

Autoriaus įvadas:

Nickas Vipondas yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant taisyti doc failą ir Outlook atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

Bendrinti dabar:

Komentarai yra uždaryti.