即使方法存在于工作表中

时间:2019-06-17 05:59:51

标签: excel vba

我正在调用Xyz工作表的方法,因此按钮确定。但是,当我单击该确定按钮时,导致找不到方法或数据成员。即使该方法存在于Xyz sheet..sheet中,但sheet被保护。为什么即使存在正确的方法也出现错误?

Dim wsWarnErr As Object

   If BC_FC_RadioButton.Value Then
    Call wsWarnErr.GroupByBC_FC
  End If

上述更改后,错误提示为“对象变量或未设置块变量”

1 个答案:

答案 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引用的调用在运行时可以解决