0

そのため、APIからメソッドを取得して正しく実行しようとすると問題が発生します。ドキュメントによると、このメソッドには次のものがあります。

updateMethod(Object, String, Int)

オブジェクトは、更新するアイテムを保持するワークシートまたはワークブックです。Stringはアイテムの名前であり、Intはどのタイプの更新が行われるかを示します。

Trueこのメソッドは、更新された場合と更新されFalseなかった場合に返されるため、実際にはブール値で使用する必要があります。

wasUpdated = api.updateMethod(Object、String、Int)

したがって、私のコード例は次のとおりです。

Function TestUpdate()

    Dim wasUpdated As Boolean
    Dim Container As Object
    Dim RangeName As String
    Dim refreshType As Integer

    Set Container = ThisWorkbook.Worksheets(1)
    RangeName = "RangeTest"
    refreshType = 0

    wasUpdated = api.updateMethod(Container, RangeName, refreshType)

    If wasUpdate = True Then
        MsgBox "Updated"
    Else
        MsgBox "Failed"
    End If

End Function

wasUpdate = ...「オブジェクトが必要です」というメッセージでランタイムエラー424が発生し続けます。オブジェクトを正しく定義していませんか?または、これはAPI自体で発生する可能性のある問題であり、会社に連絡する必要がありますか?

ありがとう

4

1 に答える 1

0

クレジットは@TimWilliamsに送られます

問題はAPIオブジェクトの宣言ではなく、コンテナオブジェクトとは何の関係もありませんでした。

Function TestUpdate()

    Dim wasUpdated As Boolean
    Dim Container As Worksheet
    Dim RangeName As String
    Dim refreshType As Integer
    Dim apiUpdateObject As Object
    Dim apiObject As Object

    Set apiObject = CreateObject("ApiDLL.Object")
    Set apiObject.ParentApp = ActiveWorkbook.Application

    Set apiUpdateObject = apiObject.UpdateMethod
    Set Container = ThisWorkbook.Worksheets(1)
    RangeName = "RangeTest"
    refreshType = 0

    wasUpdated = apiUpdateObject.UpdateNRange(Container, RangeName, refreshType)

    If wasUpdated = True Then
        MsgBox "Updated"
    Else
        MsgBox "Failed"
    End If

End Function

助けてくれてありがとう。

于 2012-09-25T15:55:47.617 に答える