vba错误438但对象类确实包含sub

时间:2013-05-21 13:55:06

标签: class vba object runtime

我正在编写应该从Excel工作表中读取数据的代码,将其作为字符串保存到我已定义的类的对象中包含的变量中,然后将此对象添加到类的对象树中也定义了。

Dim ProdTreeMain As New CProdTree
Dim nR As Range
Dim nnR As Range
Set nR = oXS.Range("A1")
Set nnR = oXS.Range("A1")
dim r as integer
r = 1

Do While Not (nR.Text = "" And nnR.Text = "")
    If CONDITION IS TRUE:

        Dim currProd As New CProduct

        ProdTreeMain.addProduct (currProd) '<-- error 438 "Object doesn't support property or method

    End If
    r = r + 1
    Set nR = oXS.Range("A" & CStr(r + 1))
    Set nR = oXS.Range("A" & CStr(r + 2))

Loop

CProdTree类包含一个子“addProduct”,它通过引用获取类CProduct的输入对象。

Public Sub addProduct(ByRef Prod As CProduct)

到底是怎么回事?这个类是定义的,子正确的,传递给sub的变量类型是正确的类,但是我得到了这个错误...:/

1 个答案:

答案 0 :(得分:4)

您需要删除参数周围的括号。我最喜欢的解释是Daily Dose of Excel post

这一行:

ProdTreeMain.addProduct (currProd)

变为:

ProdTreeMain.addProduct currProd