gpt4 book ai didi

class - 将对象传递给类方法: Object doesn't support this property or method

转载 作者:行者123 更新时间:2023-12-02 16:12:10 24 4
gpt4 key购买 nike

您好,我正在使用 excel 2013 vba,我想将工作表对象传递给类函数:

'类模块Class1'

Sub receive(ByRef ws As Worksheet)
msgbox ws.name
End Sub

调用类方法接收:

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关键字;或
  • 您正在调用函数并且使用返回值;或
  • 您明确需要评估或取消引用您传递的变量。

关于class - 将对象传递给类方法: Object doesn't support this property or method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30637337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com