Theo dõi bài viết này và xây dựng công cụ địa lý của riêng bạn để bạn có thể nhận được kinh độ và vĩ độ cho một địa chỉ. Bộ chuyển đổi như thế này thường được sử dụng bởi các nhà môi giới bất động sản.
Tải xuống Ngay
Nếu bạn muốntart để sử dụng phần mềm càng sớm càng tốt, sau đó 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
Tất cả những gì bạn cần là một trang tính Excel duy nhất và bạn có thể đặt tên cho trang tính theo nhu cầu của mình. Trong ví dụ này, tôi đang sử dụng tên trang tính mặc định là “Sheet1”. Bước tiếp theo là thêm các tiêu đề cần thiết trên trang tính này. Bộ chuyển đổi vĩ độ, kinh độ cho kết quả chính xác cho địa chỉ mà chúng ta chuyển nếu đầu vào bao gồm ngoại ô, tiểu bang, postmã và quốc gia. Như trong hình, chuẩn bị tiêu đề. Hãy để chúng tôi thêm Vĩ độ và Kinh độ làm hai cột cuối cùng. Chúng tôi cũng cần một nút để cho phép người dùng thực hiện chuyển đổi. Vì vậy, hãy chèn một Hình dạng và tô màu cho nó để làm cho nó xuất hiện dưới dạng một nút.
Hãy làm cho nó hoạt động
Tập lệnh được cung cấp ở đây phải được sao chép vào một mô-đun mới. Đừng quên lưu sổ làm việc của bạn dưới dạng tệp sổ làm việc đã bật macro. Sub “FindThis” phải được gắn vào nút mà chúng ta vừa tạo.
Hãy kiểm tra nó
Thêm địa chỉ cùng với thông tin khác vào các cột tương ứng. Nhấp vào nút để chạy macro sẽ hiển thị tọa độ vĩ độ và kinh độ cho tất cả địa chỉ được liệt kê trên trang tính. Macro sẽ start ở hàng 2 và sẽ tiếp tục chạy cho đến khi đến hàng trống.
Cách thức học?
Với tập lệnh, chúng tôi đã tạo hai chức năng. Một để tìm nạp giá trị Lat và một để tìm nạp giá trị Dài. Sử dụng vòng lặp FOR, chúng tôi chuyển từng địa chỉ cho các hàm này và hiển thị kết quả trên màn hình.
Script
Function GETLAT(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LAT>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LAT>")
GETLAT = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Function GETLNG(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LNG>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LNG>")
GETLNG = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Sub FindThis()
For r = 2 To 5
Range("F" & r).Value = GETLAT(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Range("G" & r).Value = GETLNG(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Next r
End Sub
Nếu bạn không nhận được kết quả phù hợp khi sử dụng tập lệnh, excel bị hỏng có thể là một lý do có thể xảy ra. Sau đó bạn có thể sử dụng Công cụ khôi phục tệp Excel như là DataNumen Excel Repair để sửa chữa Excel.
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 vấn đề tài liệu sửa chữa 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
