Webサービスコールから変換されたjson文字列応答テキストがあります。コードは、Webサービスを呼び出すボタンと同じシートに貼り付けると機能します。しかし、別のシートに結果を置こうとすると "Error 1004 Application DefinedまたはObject Definedエラー"が表示されます変換されたjson文字列を別のシートに貼り付けると、VBAランタイムエラー1004が発生する
Excel上のクリックボタンのコードは次のとおりです。
Private Sub webcall_Click()
Dim MyRequest As Object
Dim JSON As Dictionary
Dim Header As Range
Dim Env As String
Logix = Sheets("Sheet1").Cells(2, "G").Value
If Env = "" Then
URL = "https://defaultURL/sqlquery.aspx"
MsgBox (URL)
Else
URL = "https://anotherURL/sqlquery.aspx"
MsgBox (URL)
End If
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "POST", URL
MyRequest.Send
Set JSON = JsonConverter.ParseJson(MyRequest.responseText)
Dim Values As Variant
ReDim Values(JSON("chargebackdept table").Count, 3)
Dim Value As Dictionary
Dim i As Long
i = 0
For Each Value In JSON("chargebackdept table")
Values(i, 0) = Value("chargebackcategory")
Values(i, 1) = Value("chargebackdeptid")
Values(i, 2) = Value("name")
i = i + 1
Next Value
Sheets("Sheet1").Range(Cells(1, "B"), Cells(JSON("chargebackdept table").Count, "D")) = Values
Sheets("Sheet1").Range("B1").Insert Shift:=xlDown
Sheets("Sheet1").Range("C1").Insert Shift:=xlDown
Sheets("Sheet1").Range("D1").Insert Shift:=xlDown
Set Header = Sheets("Sheet1").Range("B1")
Header.Value = "ChargeBack_Category"
Set Header = Sheets("Sheet1").Range("C1")
Header.Value = "ChargeBack_ID"
Set Header = Sheets("Sheet1").Range("D1")
Header.Value = "ChargeBack_Name"
MsgBox ("Done loading chargeback table")
End Sub
私の問題はラインです。
Sheets("Sheet1").Range(Cells(1, "B"), Cells(JSON("chargebackdept table").Count, "D")) = Values
以下のように別のシートに変更するとエラーになります。
Sheets("Sheet2").Range(Cells(1, "B"), Cells(JSON("chargebackdept table").Count, "D")) = Values
に関連しています。 .Cells?](https://stackoverflow.com/questions/36368220/is-the-in-range-necessary-when-defined-by-cells)で定義されている場合は、必要な範囲で指定します。 – Jeeped