如何在Worksheet代码中声明和使用公用函数和子例程

我在我的工作表模块中声明了一个公共函数:

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声明为Object 。 但是,当我input时,我没有得到漂亮的小代码提示

 sh. 

有没有什么办法可以让我得到工作表对象我的特定matrix代码的代码提示?

好的 – 所以我就明白了。

将工作表的“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 

它编译,我得到代码提示,这是伟大的。

Interesting Posts