使用自定义对象作为参数调用Worksheet_Change中的函数

时间:2014-02-14 13:18:00

标签: excel-vba worksheet-function custom-object vba excel

以下代码在Object doesn't support this property or method

中为我提供HelperFunctions.updatecontractlist (PC)
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim PCName As String, BU, PC As Variant
    If Target.Address = "$B$1" Then
        PCName = Target.value
        For Each BU In TotalBook.GetBUs
            For Each PC In BU.GetPCs
                If PC.Name = PCName Then HelperFunctions.updatecontractlist (PC)
        Next PC, BU
    End If
End Sub

其中updatecontractlist是:

Public Sub updatecontractlist(PC As Variant)

 whatever

End Sub

PC是自定义对象,在代码的许多其他部分都能正常工作,我可以在Watches窗口中看到,当错误发生时,它已正确加载。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

你应该改变:

If PC.Name = PCName Then HelperFunctions.updatecontractlist (PC)

If PC.Name = PCName Then Call HelperFunctions.updatecontractlist (PC)

If PC.Name = PCName Then HelperFunctions.updatecontractlist PC