วิธีแปลงพิกัด UTM เป็นค่าละติจูดและลองจิจูดผ่าน Excel VBA

แบ่งปันเลย:

ด้วยตัวแปลง UTM คุณสามารถแปลงพิกัด UTM เป็นค่าละติจูดและลองจิจูดได้อย่างง่ายดาย พิกัด Universal Transverse Mercator (UTM) ประกอบด้วยหมายเลขโซน ทิศตะวันออก ทิศเหนือ และซีกโลก (N/S)

ดาวน์โหลดตอนนี้

ถ้าคุณต้องการ starเพื่อใช้ซอฟต์แวร์โดยเร็วที่สุดจากนั้นคุณสามารถ:

ดาวน์โหลดซอฟต์แวร์ทันที

มิฉะนั้นหากคุณต้องการ DIY คุณสามารถอ่านเนื้อหาด้านล่าง

เตรียม GUI กันเถอะ

ดังที่แสดงในภาพ เว้น 4 แถวบนสุดของแผ่นงาน excel ไว้สำหรับเก็บ Map Datum, Zone และ Hemisphere ค่า 3 ค่านี้จะใช้กับทุกแถวในแผ่นงาน Excel ที่แถวที่ 5, starting จากคอลัมน์ A เพิ่มเหล่านี้เป็นส่วนหัว

  1. DLS_KEY
  2. RM
  3. ตะวันออก
  4. เหนือ
  5. ละติจูด
  6. ลองจิจูด

ค่าในคอลัมน์ A ถึงคอลัมน์ D เป็นอินพุตและเอาต์พุต เช่น ละติจูดและลองจิจูดจะแสดงบนคอลัมน์ E และ Fเตรียม GUI

มาทำให้มันใช้งานได้

คัดลอกสคริปต์ลงในโมดูลใหม่และแนบมาโครกับปุ่มบนแผ่นงาน โปรดตรวจสอบว่าเครื่องของคุณมี Internet explorer หากไม่มี IE สคริปต์นี้จะใช้งานไม่ได้

มาทดสอบกันเลย

เมื่อคุณเรียกใช้แมโคร คุณสามารถติดตามสถานะได้อย่างง่ายดายจากแถบสถานะของแอปพลิเคชัน Excel ของคุณ เนื่องจากเราได้หยุดชั่วคราวระหว่างการแปลงแต่ละครั้งด้วยตนเอง มาโครจะใช้เวลาในการแปลงพิกัด UTM ทั้งหมดของคุณเป็นค่า Lat และ Long เมื่อประมวลผลบันทึกทั้งหมดแล้ว คุณจะเห็นข้อความป๊อปอัปบนหน้าจอ ถ้าแมโครไม่สามารถบันทึกข้อมูลบนแผ่นงานได้ อาจเป็นเพราะไฟล์ Excel ของคุณเสียหาย แก้ไขไฟล์ Excel ที่เสียหาย และเรียกใช้สคริปต์อีกครั้งติดตามสถานะจากแถบสถานะของแอปพลิเคชัน Excel ของคุณ

ข้อความป๊อปอัปบนหน้าจอ

สคริปต์:

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

บทนำผู้เขียน:

Nick Vipond เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซมไฟล์ doc และผลิตภัณฑ์ซอฟต์แวร์กู้คืน Outlook ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด