Class 将对象传递给类方法:对象不';不支持此属性或方法
您好,我在excel 2013 vba中工作,我想将工作表对象传递给类函数: “类模块Class1”Class 将对象传递给类方法:对象不';不支持此属性或方法,class,excel,pass-by-reference,vba,Class,Excel,Pass By Reference,Vba,您好,我在excel 2013 vba中工作,我想将工作表对象传递给类函数: “类模块Class1” Sub receive(ByRef ws As Worksheet) msgbox ws.name End Sub 使用以下命令调用类方法receive: Sub passToClass() Dim ws as Worksheet Set ws = ThisWorkbook.Worksheets("sheet1") Dim myClass As New Class1 m
Sub receive(ByRef ws As Worksheet)
msgbox ws.name
End Sub
使用以下命令调用类方法receive:
Sub passToClass()
Dim ws as Worksheet
Set ws = ThisWorkbook.Worksheets("sheet1")
Dim myClass As New Class1
myClass.receive(ws) ' Run-time Error '438': Object doesn't support this property or method
End Sub
一个简单的测试是在同一模块中的两个子例程:
Sub pass()
Dim ws as Worksheet
Set ws = ThisWorkbook.Worksheets("sheet1")
call receive(ws)
End Sub
Sub Receive(ByRef ws As Worksheet)
msgbox ws.name
End Sub
我在概念上遗漏了什么
提前谢谢 您需要从调用中删除括号:
myClass.receive ws
或者添加Call
关键字:
Call myClass.receive(ws)
只有在以下情况下调用例程时才需要括号:
- 您使用
关键字;或Call
- 您正在调用函数并使用 返回值;或
- 您明确需要评估或取消引用 您正在传递的变量