Với công cụ chuyển đổi UTM, bạn có thể dễ dàng chuyển đổi tọa độ UTM thành các giá trị Vĩ độ và Kinh độ. Tọa độ Universal Transverse Mercator (UTM) được tạo thành từ số vùng, hướng đông, hướng bắc và bán cầu (N/S).
Tải xuống Ngay
Nếu bạn muốn bắt đầu sử dụng phần mềm càng sớm càng tốt, bạn có thể:
Tải xuống phần mềm ngay bây giờ
Còn không, nếu bạn muốn DIY, bạn có thể đọc nội dung bên dưới.
Hãy chuẩn bị GUI
Như hình ảnh minh họa, hãy dành 4 hàng đầu tiên của bảng tính Excel để lưu trữ Hệ quy chiếu bản đồ, Vùng và Bán cầu. Ba giá trị này sẽ được sử dụng cho tất cả các hàng trong bảng tính Excel. Tại hàng thứ 5, bắt đầu từ Cột A, hãy thêm các giá trị này làm tiêu đề.
- DLS_KEY
- RM
- ĐÔNG
- PHÍA BẮC
- LATITUDE
- KIỂM TOÁN
Giá trị trên Cột A đến Cột D là đầu vào và đầu ra, tức là Vĩ độ và Kinh độ được hiển thị trên Cột E và F
Hãy làm cho nó hoạt động
Sao chép tập lệnh vào mô-đun mới và đính kèm macro vào nút trên Trang tính. Hãy đảm bảo rằng máy của bạn có Internet explorer. Nếu không có IE thì tập lệnh này sẽ không hoạt động.
Hãy kiểm tra nó
Khi chạy macro, bạn có thể dễ dàng theo dõi trạng thái từ thanh trạng thái của ứng dụng Excel. Vì chúng tôi đã tạo ra một số tạm dừng theo cách thủ công giữa mỗi chuyển đổi, macro sẽ mất thời gian để chuyển đổi tất cả tọa độ UTM của bạn thành giá trị Kinh độ và Kinh độ. Khi tất cả các bản ghi được xử lý, bạn có thể thấy thông báo Bật lên trên màn hình. Nếu macro không thể lưu dữ liệu trên trang tính thì có thể là do tệp Excel của bạn bị hỏng. Sửa file Excel bị hỏng và chạy lại tập lệnh.
Kịch bản:
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
Giới thiệu tác giả:
Nick Vipond là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa chữa tập tin doc và các sản phẩm phần mềm khôi phục triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm


