Følg denne artikkelen og bygg ditt eget geografiske verktøy som du kan få bredde- og lengdegradskoordinater for en adresse med. Omformere som dette brukes ofte av eiendomsmeglere.
Last ned nå
Hvis du ønsker å starFor å bruke programvaren så snart som mulig, kan du:
Ellers, hvis du vil gjøre DIY, kan du lese innholdet nedenfor.
La oss forberede GUI
Alt du trenger er et enkelt Excel-ark, og du kan navngi arket etter behov. I dette eksemplet bruker jeg standard arknavnet "Sheet1". Det neste trinnet er å legge til nødvendige overskrifter på dette arket. Bredde- og lengdegradsomformeren gir nøyaktig resultat for adressen vi passerer hvis inngangen inkluderer forstad, stat, postkode og land. Som vist på bildet, klargjør overskrifter. La oss legge til breddegrad og lengdegrad som de to siste kolonnene. Vi trenger også en knapp for å la brukeren utføre konverteringen. Så la oss sette inn en form og fylle den med farge for å få den til å vises som en knapp.
La oss gjøre det funksjonelt
Skriptet som er gitt her bør kopieres inn i en ny modul. Ikke glem å lagre arbeidsboken som makroaktivert arbeidsbokfil. Sub "FindThis" skal festes til knappen som vi nettopp har opprettet.
La oss teste det
Legg til adresse sammen med annen informasjon i respektive kolonner. Klikk på knappen for å kjøre makroen som vil vise lat- og langkoordinater for alle adresser som er oppført på arket. Makroen vil start på rad 2 og vil fortsette å kjøre til den når en tom rad.
Hvordan det fungerer?
Med scriptet har vi laget to funksjoner. En for å hente Lat-verdi og en annen for å hente Long-verdi. Ved å bruke en FOR-løkke sender vi hver adresse til disse funksjonene og viser resultatet på skjermen.
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
Hvis du ikke får riktige resultater ved å bruke skriptet, kan korrupt excel være en sannsynlig årsak. Du kan da bruke Excel-filgjenopprettingsverktøy slik som DataNumen Excel Repair for å fikse Excel.
Forfatterintroduksjon:
Nick Vipond er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparer dokumentproblem og Outlook-programvareprodukter. For mer informasjon besøk www.datanumen. Med
