-1
我在Excel中製作了一個小宏,它有助於使用API從timezonedb.com中找到IANA TimeZone名稱。我做了我的電腦正常工作,但是當別人從他們的PC中使用它,它也開始出現類似的錯誤此Excel VBA:錯誤0x800c00008
我發現在互聯網上說,微軟的核心包有解決方案被修復,但我想知道是否可以通過在代碼中添加內容來繞過該內容,也許?有沒有辦法做到這一點?
我在這裏加入的功能代碼:提前
Function FetchTZ(qLat As Double, qLong As Double, c_check As String, rN As Integer) As String
Dim JSON_content As String
Dim IANAtz As String
Dim temp_l As Long
Dim XMLobj As Object
Dim qURL As String
Dim CheckCountry As String
temp_l = 0
JSON_content = vbNullString
qURL = "https://api.timezonedb.com/v2/get-time-zone?key=NB7W9T1K95UT&format=json&by=position&lat=" & qLat & "&lng=" & qLong
Set XMLobj = CreateObject("Microsoft.XMLHTTP")
With XMLobj
.Open "POST", qURL, False
.send
JSON_content = .responseText
End With
Set XMLobj = Nothing
temp_l = InStr(1, JSON_content, "zoneName")
IANAtz = Mid(JSON_content, (temp_l + 11), ((InStr(temp_l, JSON_content, "abbreviation") - 3) - (temp_l + 11)))
IANAtz = Replace(IANAtz, "\/", "/")
temp_n = InStr(1, JSON_content, "countryCode")
CheckCountry = Mid(JSON_content, (temp_n + 14), 2)
If CheckCountry <> c_check And Len(c_check) = 2 Then
Sheets("TZMacro").Range(Cells(rN, 1), Cells(rN, 4)).Interior.ColorIndex = 3
End If
FetchTZ = IANAtz
謝謝,我真的希望你能教我如何破解這一個!
你的代碼工作正常,經度和緯度爲0。我收到了回覆:「{」status「:」OK「,」message「:」「,」countryCode「:」YE「,」countryName「:」也門「,」zoneName「:」Asia \/Aden「縮寫 「:」 + 03" , 「gmtOffset」:10800, 「夏令時」: 「0」, 「dstStart」: - 719636812, 「dstEnd」:0, 「nextAbbreviation」: 「」, 「時間戳」:1500646117,「格式化「:」2017-07-21 14:08:37「}'。建議您多次測試代碼,以至於限制了速度,即您每天只能多次調用API等。 –
聽起來像是一個公平點。我會考慮這一點,也許從這個想法中建立一些東西。非常感謝,羅賓! –
請發佈一個答案,以便它不再出現在「未答覆」隊列中。 – Graham