Turinys
"Excel" turi daugybę taikomųjų programų. VBA tada atrodo, kad "Excel" programoje galime daryti viską, ką tik norime. Taigi, žinoma, galime rasti atstumą tarp vietų naudojant žemėlapį "Excel" programoje. Šiame straipsnyje parodysiu greitą atstumo apskaičiavimo "Excel" programoje naudojant "Google" žemėlapius vadovą, kuriame pateikiami aštrūs žingsniai ir aiškios iliustracijos.
Atsisiųsti praktikos sąsiuvinį
Nemokamą "Excel" sąsiuvinį galite atsisiųsti iš čia ir praktikuotis savarankiškai.
Apskaičiuoti atstumą su "Google-Maps".xlsmVartotojo apibrėžtos funkcijos naudojimas atstumui apskaičiuoti programoje "Excel" naudojant "Google" žemėlapius
Čia mes rasti atstumą tarp MacArthur Parko ir Džersio Sičio, naudodami "Google Maps".
Pirmiausia turime žinoti svarbų dalyką. Norėdami apskaičiuoti atstumą "Excel" programoje naudodami "Google" žemėlapius, turėsime API raktas. API reiškia Taikomosios programos sąsaja . "Excel" jungiasi su "Google" žemėlapiais naudodama API raktą reikiamiems duomenims rinkti. Kai kurie žemėlapiai teikia nemokamus API raktus, pavyzdžiui, "Bing Maps". Tačiau "Google" žemėlapiai neteikia nemokamos API. Nors ir valdysite nemokamą API, kažkaip tai neveiks tobulai. Taigi, turėsite nusipirkti API raktą iš šios nuorodos.
Čia man pavyko nemokamai API klavišas. Jis neveikia tinkamai, tik naudojamas kaip pavyzdys. Naudosime VBA sukurti vartotojo apibrėžta funkcija pavadinimu Apskaičiuoti_atstumą į rasti atstumą . Jis turės tris argumentus. Pradinė vieta , Paskirties vieta , ir API raktas . Dabar pradėkime procedūras.
Žingsniai:
- Paspauskite ALT + F11 atidaryti VBA langas .
- Tada spustelėkite, kaip nurodyta toliau: Insert> Modulis sukurti naują modulį.
- Vėliau į langą įveskite šiuos kodus.
Public Function Calculate_Distance(start As String, dest As String, Alink As String) As Double Dim first_Value As String, second_Value As String, last_Value As String Dim mitHTTP As Object first_Value = "//maps.googleapis.com/maps/api/distancematrix/json?origins=" second_Value = "&destinations=" last_Value = "&mode=car&language=pl&sensor=false&key=" & Alink Set mitHTTP =CreateObject("MSXML2.ServerXMLHTTP") Url = first_Value & Replace(start, " ", "+") & second_Value & Replace(dest, " ", "+") & last_Value mitHTTP.Open "GET", Url, False mitHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" mitHTTP.Send ("") If InStr(mitHTTP.ResponseText, """atstumas"" : {"") = 0 Then GoTo ErrorHandl Set mit_reg =CreateObject("VBScript.RegExp"): mit_reg.Pattern = """value"".*?([0-9]+)": mit_reg.Global = False Set mit_matches = mit_reg.Execute(mitHTTP.ResponseText) tmp_Value = Replace(mit_matches(0).Submit_matches(0), ".", Application.International(xlListSeparator)) Calculate_Distance = CDbl(tmp_Value) Exit Function ErrorHandl: Calculate_Distance = -1 End Function
- Tada nieko, tiesiog grįžkite į savo lapą.
Kodo suskirstymas:
- Pirmiausia naudojau viešosios funkcijos procedūrą Apskaičiuoti_atstumą .
- Tada deklaravo keletą kintamųjų pirmoji_Vertė, antroji_Vertė ir paskutinioji_Vertė mūsų vartotojo apibrėžtos funkcijos argumentus.
- Nustatykite kintamųjų reikšmes (kiekviena reikšmė yra savaime aprašoma) ir nustatykite mitHTTP objektas, esantis ServerXMLHTTP naudoti GET metodas (naudojamas vėliau, ši objekto savybė leis naudoti POST metodą).
- URL adresas yra visų anksčiau nustatytų verčių derinys, o atviros savybės mitHTTP objektas jį naudojo.
- Po reikšmių priskyrimo bibliotekos funkcija atlieka likusius skaičiavimus.
Dabar matote, kad mūsų funkcija paruošta naudoti.
- Svetainėje Ląstelė C8 , įveskite šią formulę-
=Atstumo apskaičiavimas(C4,C5,C6)
- Galiausiai paspauskite ĮVESKITE mygtuką, kad sužinotumėte atstumą. Atstumas bus rodomas Skaitiklio vienetas .
Skaityti daugiau: Kaip apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje
Pranašumai ir trūkumai skaičiuojant atstumą su "Google" žemėlapiais
- Turite turėti galiojančią API raktas .
- Pirmiau pateiktas kodas pateiks išvestį į Skaitiklio vienetas .
- Naudotojo apibrėžta funkcija tiesiogiai naudoja vietovardžius, nereikia naudoti koordinačių.
- Įsitikinkite, kad naudojote galiojančią vietą.
Atstumo skaičiavimo su "Google" žemėlapiais privalumai ir trūkumai
Privalumai
- Daugelyje vietų tai visai įmanoma, nes galime naudoti Užpildymo rankena įrankis, kad nukopijuotumėte formulę. To neįmanoma padaryti "Google" žemėlapiai
- Tai gana greitesnis būdas.
- Nereikia naudoti koordinačių.
Trūkumai
- Jis negali veikti su koordinatėmis.
- Žemėlapio ar maršruto negausite, tik atstumą.
- Tai neveikia, jei vietovardžiai apytiksliai sutampa.
Išvada
Tikiuosi, kad pirmiau aprašytos procedūros bus pakankamai geros, kad galėtumėte apskaičiuoti atstumą "Excel" programoje su "Google" žemėlapiais. Drąsiai užduokite bet kokį klausimą komentarų skiltyje ir prašau pateikti man atsiliepimų. Apsilankykite. ExcelWIKI daugiau sužinoti.