Sledite temu članku in ustvarite svoje geografsko orodje, s katerim lahko dobite koordinate zemljepisne širine in dolžine za naslov. Takšne pretvornike pogosto uporabljajo nepremičninski posredniki.
Prenesi zdaj
Če želite programsko opremo začeti uporabljati čim prej, lahko:
Prenesite programsko opremo zdaj
V nasprotnem primeru, če želite sami, lahko preberete spodnjo vsebino.
Pripravimo GUI
Potrebujete le en Excelov list, ki ga lahko poimenujete po svojih potrebah. V tem primeru uporabljam privzeto ime lista »List1«. Naslednji korak je dodajanje potrebnih glav na ta list. Pretvornik zemljepisne širine in dolžine da natančen rezultat za naslov, ki ga posredujemo, če vnos vključuje predmestje, zvezno državo, poštno številko in državo. Kot je prikazano na sliki, pripravite glave. Dodajmo zemljepisno širino in dolžino kot zadnja dva stolpca. Potrebujemo tudi gumb, ki bo uporabniku omogočil pretvorbo. Vstavimo torej obliko in jo napolnimo z barvo, da se bo prikazala kot gumb.
Naj bo funkcionalen
Tukaj predviden skript je treba kopirati v nov modul. Ne pozabite shraniti delovnega zvezka kot datoteko delovnega zvezka z omogočeno makro. Pod "FindThis" je treba priložiti gumbu, ki smo ga pravkar ustvarili.
Preizkusimo
V ustrezne stolpce dodajte naslov skupaj z drugimi podatki. Kliknite gumb, da zaženete makro, ki bo prikazal zemljepisne in dolžinske koordinate za vse naslove, navedene na listu. Makro se bo začel v 2. vrstici in se bo izvajal, dokler ne doseže prazne vrstice.
Kako deluje?
S skriptom smo ustvarili dve funkciji. Ena za pridobivanje vrednosti Lat in druga za pridobivanje vrednosti Long. Z zanko FOR vsak naslov posredujemo tem funkcijam in rezultat prikažemo na zaslonu.
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
Če s skriptom ne prejmete ustreznih rezultatov, je verjetno razlog poškodovan excel. Nato lahko uporabite Orodje za obnovitev datotek Excel kot DataNumen Excel Repair popraviti Excel.
Uvod avtorja:
Nick Vipond je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z problem popravljanja dokumenta in obeti za obnovitev programske opreme. Za več informacij obiščite www.datanumen.com
