ทำตามบทความนี้และสร้างเครื่องมือทางภูมิศาสตร์ของคุณเองซึ่งคุณจะได้รับพิกัดละติจูดและลองจิจูดสำหรับที่อยู่ ตัวแปลงแบบนี้มักใช้โดยนายหน้าอสังหาริมทรัพย์
ดาวน์โหลดตอนนี้
หากคุณต้องการเริ่มใช้งานซอฟต์แวร์โดยเร็วที่สุด คุณสามารถทำได้ดังนี้:
มิฉะนั้นหากคุณต้องการ DIY คุณสามารถอ่านเนื้อหาด้านล่าง
มาเตรียม GUI กัน
คุณต้องการเพียงแค่ไฟล์ Excel ไฟล์เดียว และคุณสามารถตั้งชื่อไฟล์ได้ตามต้องการ ในตัวอย่างนี้ ฉันใช้ชื่อไฟล์เริ่มต้นว่า “Sheet1” ขั้นตอนต่อไปคือการเพิ่มส่วนหัวที่จำเป็นลงในไฟล์นี้ ตัวแปลงละติจูดและลองจิจูดจะให้ผลลัพธ์ที่แม่นยำสำหรับที่อยู่ที่เราป้อน หากข้อมูลที่ป้อนประกอบด้วยเขตย่อย รัฐ รหัสไปรษณีย์ และประเทศ ดังที่แสดงในภาพ ให้เตรียมส่วนหัว เรามาเพิ่มละติจูดและลองจิจูดเป็นสองคอลัมน์สุดท้าย เรายังต้องการปุ่มเพื่อให้ผู้ใช้สามารถทำการแปลงได้ ดังนั้นเรามาแทรกรูปร่างและเติมสีเพื่อให้ดูเหมือนปุ่ม
มาทำให้มันใช้งานได้
ควรคัดลอกสคริปต์ที่ให้ไว้ที่นี่ไปยังโมดูลใหม่ อย่าลืมบันทึกสมุดงานของคุณเป็นไฟล์สมุดงานที่เปิดใช้งานมาโคร ส่วนย่อย“ FindThis” ควรติดอยู่กับปุ่มที่เราเพิ่งสร้างขึ้น
มาทดสอบกันเลย
เพิ่มที่อยู่และข้อมูลอื่นๆ ลงในคอลัมน์ที่เกี่ยวข้อง คลิกปุ่มเพื่อเรียกใช้มาโคร ซึ่งจะแสดงพิกัดละติจูดและลองจิจูดสำหรับที่อยู่ทั้งหมดที่แสดงในแผ่นงาน มาโครจะเริ่มต้นที่แถวที่ 2 และจะทำงานต่อไปจนกว่าจะถึงแถวว่าง
ใช้อย่างไร
ด้วยสคริปต์เราได้สร้างสองฟังก์ชัน หนึ่งสำหรับดึงค่า Lat และอีกค่าหนึ่งสำหรับดึงค่า Long การใช้ FOR loop เราจะส่งแต่ละแอดเดรสไปยังฟังก์ชันเหล่านี้และแสดงผลลัพธ์บนหน้าจอ
ต้นฉบับ
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. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซมปัญหาเอกสาร และผลิตภัณฑ์ซอฟต์แวร์กู้คืน Outlook ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.
