-1
Excelで小さなマクロを作成し、timezonedb.comからIANA TimeZoneの名前をAPIで検索しました。私はそれが私のPCのために働く作ったが、他の誰かが自分の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
おかげで、私は本当にあなたがどのようにこの1をクラックするために私を教えることを願って!
コードは、緯度と経度が0の場合は正常に機能します。 "{" status ":" OK "、" message ":" "countryCode": "YE"、 "countryName": "イエメン"、 "zoneName": "アジア\/Aden" "dstStart": - 719636812、 "dstEnd":0、 "nextAbbreviation": ""、 "timestamp":1500646117、 "書式:" + "03"、 "gmtOffset":10800、 "dst" ":" 2017-07-21 14:08:37 "}'レート制限付きのコードを何回もテストしたことを示すようにしてください。つまり、APIを1日に何回も呼び出すことしかできません。 –
公正な点のように聞こえます。私はそれについて考えて、そのアイデアから何かを構築するかもしれません。ありがとう、ロビン! –
これに答えを投稿して、「未回答」のキューに表示されなくなります。 – Graham