السلام عليكم ورحمة الله وبركاتة
انا عندي شيت اكسل فية اكتر من عشرين الف عنوان
وعايز المسافة بين عنوان معين وكل العناوين الـ 20000
انا بحثت كتير فى الموضوع ولقيت مواقع اجنبية بتتكلم عن الموضوع دة وبالفعل لقيت كود بيعمل كدة ونسختة فى الشيت بس مش عارف لية بعد عدد من العناوين الكود هنج
فياريت ياجماعةحد يفيدني فى الموضوع ده
لان خبرتي فى موضوع الـ vba صفر بصراحة
او حد يقولي كود جديد تاني ينفعني فى المشكلة دي
شكراً
انا عملت نسخة من الفيل الاصلي لان الفيل الاصلي كبير جدا ورفعتة على دروب بوكس علشان مش عارف اعمل اتتاتش للفيل بصراحة
https://www.dropbox.com/s/c5laq7i9vxwu74e/Book1.xlsx?dl=0
والكود :
'Calculate Google Maps distance between two addresses
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
firstVal = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="
secondVal = "&destinations="
lastVal = "&mode=car&language=pl&sensor=false"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
Set matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(0).SubMatches(0), ".", Application.International(xlListSeparator))
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
شكرا