Дотримуйтесь цієї статті та створіть свій власний географічний інструмент, за допомогою якого ви можете отримати координати широти та довготи адреси. Такі конвертори зазвичай використовують брокери нерухомості.
Завантажити зараз
Якщо ви хочете почати користуватися програмним забезпеченням якомога швидше, ви можете:
Завантажте програмне забезпечення зараз
В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.
Давайте підготуємо графічний інтерфейс
Вам знадобиться лише один аркуш Excel, і ви можете назвати аркуш за потреби. У цьому прикладі я використовую назву аркуша за замовчуванням «Аркуш1». Наступним кроком є додавання необхідних заголовків на цей аркуш. Конвертер широти та довготи дає точний результат для адреси, яку ми передаємо, якщо вхідні дані включають передмістя, штат, поштовий індекс та країну. Як показано на зображенні, підготуйте заголовки. Додамо широту та довготу як останні два стовпці. Нам також потрібна кнопка, щоб користувач міг виконати перетворення. Отже, давайте вставимо фігуру та заповнимо її кольором, щоб вона виглядала як кнопка.
Зробимо його функціональним
Наведений тут сценарій слід скопіювати в новий модуль. Не забудьте зберегти свою книгу як файл книги з підтримкою макросів. Підпункт "Знайти це" слід прикріпити до кнопки, яку ми щойно створили.
Давайте перевіримо
Додайте адресу разом з іншою інформацією у відповідні стовпці. Натисніть кнопку, щоб запустити макрос, який відобразить географічні та довготні координати для всіх адрес, перелічених на аркуші. Макрос почнеться з рядка 2 і продовжуватиме виконуватися, доки не досягне порожнього рядка.
Як це працює?
За допомогою сценарію ми створили дві функції. Один для отримання значення Lat, а інший для отримання значення Long. Використовуючи цикл FOR, ми передаємо кожну адресу цим функціям і відображаємо результат на екрані.
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
Якщо ви не отримуєте належних результатів за допомогою сценарію, можливою причиною може бути пошкоджений Excel. Потім можна використовувати Засіб відновлення файлів Excel такий як DataNumen Excel Repair виправити Excel.
Вступ автора:
Нік Віпонд - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі проблема відновлення документа та перспективні програмні продукти для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com
