我在我的一个工作表模块中声明了一个公共函数:
Public Function isValidContract(contract As String) As Boolean
' Code reads cell values from the worksheet and determines
' if passed-in contract is one of them.
End Function
我希望能够从其他模块和类模块访问它。我尝试过以下方法:
Public Sub someRandomSubInAntoherModule()
Dim contract As String
Dim sh as Worksheet
' Code that sets contract
Set sh = Sheets("Matrix")
If Not sh.isValidContract(contract) Then
' blah
End If
End Sub
但我收到编译错误:"找不到方法或数据成员",可能是因为我将sh
声明为工作表对象,而工作表对象没有isValidContract()
方法。但我想使用我的 Matrix 工作表中定义的isValidContract()
方法。
我能让它发挥作用的唯一方法是将sh
声明为对象。但是当我输入
sh.
有没有办法维护sh
,以便获得Worksheet对象和我的特定 Matrix 代码的代码提示?
答案 0 :(得分:2)
好的 - 我只是想通了。
更改" Excel名称"工作表的内容是有意义的......在这种情况下,我通过编辑其属性将 Sheet1 重命名为 MatrixSheet 。
然后在客户端代码中:
Public Sub someRandomSubInAntoherModule()
Dim contract As String
Dim sh as MatrixSheet
Set sh = Sheets("Matrix")
' Code that sets contract
If Not sh.isValidContract(contract) Then
' blah
End If
End Sub
它编译,我得到代码提示,它很棒。