我正在调用Xyz工作表的方法,因此按钮确定。但是,当我单击该确定按钮时,导致找不到方法或数据成员。即使该方法存在于Xyz sheet..sheet中,但sheet被保护。为什么即使存在正确的方法也出现错误?
Dim wsWarnErr As Object
If BC_FC_RadioButton.Value Then
Call wsWarnErr.GroupByBC_FC
End If
上述更改后,错误提示为“对象变量或未设置块变量”
答案 0 :(得分:2)
假设您在Sheet1
代码模块中拥有此功能:
Option Explicit
Public Sub SayHello()
Debug.Print "Hello"
End Sub
如果您在常规模块中尝试这样做:
Dim sht As Worksheet
Set sht = Sheet1
sht.SayHello
您将收到一个编译错误“找不到方法或数据成员”。
您的方法在那里但是,您将sht声明为类型Worksheet
,而“开箱即用”工作表类型没有SayHello
方法,因此您会收到该错误。
如果您改为使用
Dim sht As Sheet1
或
Dim sht As Object
您不会看到此错误,因为Sheet1
类型的 具有该方法,并且对后期绑定的As Object
引用的调用在运行时可以解决