如何在工作表代码

时间:2015-11-03 15:57:10

标签: excel vba excel-vba code-hinting

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

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 代码的代码提示?

1 个答案:

答案 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

它编译,我得到代码提示,它很棒。