Urmați acest articol și construiți-vă propriul instrument geografic cu care puteți obține coordonatele de latitudine și longitudine pentru o adresă. Astfel de convertizoare sunt utilizate în mod obișnuit de către brokerii imobiliari.
Descarcă acum
Dacă doriți să începeți să utilizați software-ul cât mai curând posibil, puteți:
În rest, dacă vrei să faci DIY, poți citi conținutul de mai jos.
Să pregătim GUI
Tot ce ai nevoie este o singură foaie Excel și o poți denumi după cum vrei. În acest exemplu, folosesc numele implicit al foii „Sheet1”. Următorul pas este să adaugi anteturile necesare pe această foaie. Convertorul de latitudine și longitudine oferă rezultate precise pentru adresa pe care o transmitem dacă datele de intrare includ suburbia, statul, codul poștal și țara. Așa cum se arată în imagine, pregătește anteturile. Să adăugăm latitudinea și longitudinea ca ultimele două coloane. De asemenea, avem nevoie de un buton pentru a permite utilizatorului să facă conversia. Așadar, hai să inserăm o formă și să o umplem cu culoare pentru a o face să apară ca un buton.
Să-l facem funcțional
Scriptul furnizat aici ar trebui copiat într-un modul nou. Nu uitați să salvați registrul de lucru ca fișier de registru de lucru activat pentru macro. Sub-ul „FindThis” ar trebui să fie atașat butonului pe care tocmai l-am creat.
Să-l testăm
Adăugați adresa împreună cu alte informații în coloanele respective. Faceți clic pe buton pentru a rula macrocomanda care va afișa coordonatele latitudine și lungime pentru toate adresele listate în foaie. Macrocomanda va începe de la rândul 2 și va continua să ruleze până când ajunge la un rând gol.
Cum functioneaza?
Cu script-ul am creat două funcții. Unul pentru preluarea valorii Lat și altul pentru preluarea valorii Long. Folosind o buclă FOR, transmitem fiecare adresă acestor funcții și afișăm rezultatul pe ecran.
Scenariu
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
Dacă nu primiți rezultate adecvate utilizând scriptul, Excel corupt ar putea fi un motiv probabil. Puteți folosi apoi Instrument de recuperare a fișierelor Excel , cum ar fi DataNumen Excel Repair pentru a repara Excel.
Introducerea autorului:
Nick Vipond este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparatie doc problema și produse software de recuperare Outlook. Pentru mai multe informații vizitați www.datanumen.com
