Дотримуйтесь цієї статті та створіть свій власний географічний інструмент, за допомогою якого ви можете отримати координати широти та довготи адреси. Такі конвертори зазвичай використовують брокери нерухомості.
Завантажити зараз
Якщо ви хочете start щоб скористатися програмним забезпеченням якомога швидше, тоді ви можете:
Завантажте програмне забезпечення зараз
В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.
Давайте підготуємо графічний інтерфейс
Все, що вам потрібно, це один аркуш Excel, і ви можете назвати аркуш відповідно до своїх потреб. У цьому прикладі я використовую назву аркуша за замовчуванням “Sheet1”. Наступним кроком є додавання необхідних заголовків на цьому аркуші. Перетворювач широти, довготи дає точний результат для адреси, яку ми передаємо, якщо вхідні дані містять передмістя, штат, сostкод і країна. Як показано на зображенні, підготуйте заголовки. Додамо широту та довготу як останні два стовпці. Нам також потрібна кнопка, щоб дозволити користувачеві здійснити перетворення. Тож давайте вставимо фігуру та залиємо її кольором, щоб вона виглядала як кнопка.
Зробимо його функціональним
Наведений тут сценарій слід скопіювати в новий модуль. Не забудьте зберегти свою книгу як файл книги з підтримкою макросів. Підпункт "Знайти це" слід прикріпити до кнопки, яку ми щойно створили.
Давайте перевіримо
Додайте адресу разом з іншою інформацією у відповідні стовпці. Натисніть кнопку, щоб запустити макрос, який відображав би координати широти та довжини для всіх адрес, зазначених на аркуші. Макрос буде start у рядку 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
