小编Adi*_*tya的帖子

将对象传递给Class方法:Object不支持此属性或方法

嗨我在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)

我在概念上错过了什么?

提前致谢!

excel vba class pass-by-reference excel-vba

3
推荐指数
1
解决办法
2587
查看次数

标签 统计

class ×1

excel ×1

excel-vba ×1

pass-by-reference ×1

vba ×1