Volg dit artikel en bouw je eigen geografische tool waarmee je de lengte- en breedtegraadcoördinaten van een adres kunt krijgen. Converters zoals deze worden vaak gebruikt door makelaars in onroerend goed.
Nu downloaden
Als je wilttarOm de software zo snel mogelijk te gebruiken, kunt u:
Anders, als je zelf wilt klussen, kun je de onderstaande inhoud lezen.
Laten we de GUI voorbereiden
Het enige dat u nodig hebt, is een enkel Excel-blad en u kunt het blad een naam geven die u nodig heeft. In dit voorbeeld gebruik ik de standaardbladnaam "Blad1". De volgende stap is het toevoegen van de benodigde kopteksten aan dit blad. De lengte- en breedtegraad-omzetter geeft een nauwkeurig resultaat voor het adres dat we doorgeven als de invoer voorstad, staat, p bevatostcode en land. Bereid kopteksten voor zoals weergegeven in de afbeelding. Laten we Breedtegraad en Lengtegraad toevoegen als laatste twee kolommen. We hebben ook een knop nodig waarmee de gebruiker de conversie kan uitvoeren. Laten we dus een vorm invoegen en deze met kleur vullen zodat deze als een knop verschijnt.
Laten we het functioneel maken
Het hier verstrekte script moet naar een nieuwe module worden gekopieerd. Vergeet niet uw werkmap op te slaan als een macro-enabled werkmapbestand. De sub "FindThis" moet worden gekoppeld aan de knop die we zojuist hebben gemaakt.
Laten we het testen
Voeg het adres samen met andere informatie toe aan de respectieve kolommen. Klik op de knop om de macro uit te voeren die de lengte- en breedtecoördinaten weergeeft voor alle adressen die op het blad staan. De macro zal start op rij 2 en zal blijven draaien totdat hij een lege rij bereikt.
Hoe werkt het?
Met het script hebben we twee functies gemaakt. Een voor het ophalen van de Lat-waarde en een andere voor het ophalen van de Long-waarde. Met behulp van een FOR-lus geven we elk adres door aan deze functies en geven we het resultaat op het scherm weer.
Script
Functie 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, " ", "+") & ",Australië" 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, " ") Als x <> 0 Dan y = InStr(x + 5, v_string, " ") GETLAT = Mid(v_string, x + 5, y - (x + 5)) End If End Functie Functie 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, " ", "+") & ",Australië" 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, " ") Als x <> 0 Dan y = InStr(x + 5, v_string, " ") GETLNG = Mid(v_string, x + 5, y - (x + 5)) End If End Functie Sub FindThis() For r = 2 To 5 Range("F" & r).Value = GETLAT(Range(" A" & r). Waarde, bereik ("B" & r). Waarde, bereik ("C" & r). Waarde, bereik ("D" & r). Waarde) Bereik ("G" & r). Waarde = GETLNG(Bereik("A" & r).Waarde, Bereik("B" & r).Waarde, Bereik("C" & r).Waarde, Bereik("D" & r).Waarde) Volgende r Eind sub
Als u geen goede resultaten krijgt met het script, kan een beschadigde Excel een waarschijnlijke reden zijn. U kunt dan gebruiken Hulpprogramma voor het herstellen van Excel-bestanden zoals DataNumen Excel Repair om Excel te repareren.
Auteur Introductie:
Nick Vipond is een data recovery-expert in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie doc probleem en Outlook-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com