Excel VBA를 사용하여 주소의 위도 및 경도 좌표를 가져 오는 지리적 도구를 만드는 방법

지금 공유 :

이 기사를 따라 주소의 위도 및 경도 좌표를 얻을 수있는 고유 한 지리적 도구를 구축하십시오. 이와 같은 변환기는 일반적으로 부동산 중개인이 사용합니다.

다운로드

원하는 경우tar가능한 한 빨리 소프트웨어를 사용하려면 다음을 수행 할 수 있습니다.

지금 소프트웨어 다운로드

그렇지 않고 DIY를 원한다면 아래 내용을 읽을 수 있습니다.

GUI를 준비합시다

필요한 것은 단일 Excel 시트이며 필요에 따라 시트 이름을 지정할 수 있습니다. 이 예에서는 기본 시트 이름 "Sheet1"을 사용합니다. 다음 단계는이 시트에 필요한 헤더를 추가하는 것입니다. 위도, 경도 변환기는 입력에 suburb, state, p가 포함 된 경우 전달하는 주소에 대해 정확한 결과를 제공합니다.ost코드 및 국가. 이미지와 같이 헤더를 준비하십시오. 위도 및 경도를 마지막 두 열로 추가하겠습니다. 사용자가 변환을 수행 할 수있는 버튼도 필요합니다. 이제 Shape를 삽입하고 색상으로 채워서 버튼처럼 보이도록하겠습니다.GUI 준비

기능적으로 만들자

여기에 제공된 스크립트를 새 모듈에 복사해야합니다. 통합 문서를 매크로 사용 통합 문서 파일로 저장하는 것을 잊지 마십시오. Sub "FindThis"는 방금 만든 버튼에 첨부되어야합니다.

테스트 해보자

다른 정보와 함께 주소를 각 열에 추가합니다. 버튼을 클릭하여 시트에 나열된 모든 주소에 대한 위도 및 경도 좌표를 표시하는 매크로를 실행합니다. 매크로는tart는 행 2에 있으며 빈 행에 도달 할 때까지 계속 실행됩니다.주소 추가 및 버튼 클릭

어떤 서비스인가요?

스크립트를 사용하여 두 가지 기능을 만들었습니다. 하나는 Lat 값을 가져 오기위한 것이고 다른 하나는 Long 값을 가져 오기위한 것입니다. FOR 루프를 사용하여 각 주소를 이러한 함수에 전달하고 결과를 화면에 표시합니다.

스크립트

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을 수정합니다.

저자 소개 :

Nick Vipond는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. 문서 문제 복구 그리고 전망 회복 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM

지금 공유 :

댓글이 닫혀있다.