相关疑难解决方法(0)

确保公共VBA方法不会显示在Excel宏列表中

在Excel VBA(2003)中,我注意到模块或ThisWorkbook中没有任何参数的任何PublicFriend Sub方法都将显示为可由用户运行的宏.即,当用户转到工具 - >宏 - >宏...(或Alt + F8)时,该方法将显示在可以运行的列表中.

为了理智(组织,维护等),我需要将代码分成模块.我希望找到一种非hacky方法来隐藏用户的某些方法,但仍允许其他代码模块可见.请注意,所有代码都包含在同一个应用程序中,因此不会调用任何外部代码.

我当前的解决方法是使用返回布尔值而不是Sub s的Function,并忽略返回值.eJames建议在Sub中使用可选参数,也可以从宏列表中隐藏该方法.

然而,这些都不是正确的,所以任何关于如何构建一个非平凡的Excel VBA应用程序的建议将非常感激.

excel vba

24
推荐指数
3
解决办法
2万
查看次数

错误的方法名称缺少VBA编译器消息

请考虑以下代码:

Public Sub VBACompilerIsMad()

    Dim Ap As Application     
    Dim Wb As Workbook
    Dim Ws As Worksheet

    Debug.Print Ap.XXX ' No compile error
    Debug.Print Wb.XXX ' No compile error
    Debug.Print Ws.XXX ' Compile error

End Sub
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我得到一个编译器错误,用于引用一个不存在的成员Worksheet.但是,如果我注释掉最后一行,则没有编译器错误,即使它们既Application没有Workbook方法或属性也没有XXX.这是因为如果我声明Ap,并Wb作为Object变量.

为什么编译器处理Application/ Workbook不同Worksheet

有没有像这样的其他类,编译器似乎对待它们好像Object

excel vba excel-vba

21
推荐指数
2
解决办法
703
查看次数

标签 统计

excel ×2

vba ×2

excel-vba ×1