Adi*_*tya 3 excel vba class pass-by-reference excel-vba
嗨我在excel 2013 vba工作,我想将工作表对象传递给类函数:
'类模块Class1'
Sub receive(ByRef ws As Worksheet)
msgbox ws.name
End Sub
Run Code Online (Sandbox Code Playgroud)
调用类方法接收:
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
Run Code Online (Sandbox Code Playgroud)
一个有效的简单测试是同一模块中的两个子程序:
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
Run Code Online (Sandbox Code Playgroud)
我在概念上错过了什么?
提前致谢!
您需要从调用中删除括号:
myClass.receive ws
Run Code Online (Sandbox Code Playgroud)
或添加Call
关键字:
Call myClass.receive(ws)
Run Code Online (Sandbox Code Playgroud)
只有在调用例程时才需要括号:
Call
关键字; 要么 归档时间: |
|
查看次数: |
2587 次 |
最近记录: |