vba - 私有(private)模块中的智能感知

标签 vba intellisense

假设我有一个名为 Module1 的模块,其中包含以下代码:

Private Sub MyPrivateSub()
    'do something
End Sub

Public Sub MyPublicSub()
    'do something
End Sub

Public Sub test()

End Sub

如果我将光标放在 Test() 内并开始输入“MyPrivateSub”或“MyPublicSub”,我不会得到任何智能感知。我可以输入“Module1”。 (如果 Module1 是类模块,则为“Me”)来获取智能感知菜单,但这仅包含公共(public)方法 MyPublicSub,如下所示:

enter image description here

是否有某种方法可以为所有成员(公共(public)和私有(private))获取智能感知菜单?我正在开发一个包含许多方法的模块的项目,不断上下复制/粘贴成员名称非常耗时。

最佳答案

简短回答

点击组合

CTRL+空格

然后开始输入子名称,如下所示

enter image description here

长答案

你在编程中所做的一切都很重要。当您决定将子/函数/变量设为私有(private)时,您这样做是有原因的,并且您需要了解这将如何影响访问级别和“范围”。

成员的范围由其访问级别决定,在 VBE 中,任何私有(private)且由其父成员限定的内容都不会获得智能感知。简单地说,因为您无法(不应该能够)从外部访问它。

由于您的 MyPrivateSub 访问级别为 Private,因此您无法通过使用 Module1. 限定模块来使用智能感知来访问它。

关于vba - 私有(private)模块中的智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24387837/

相关文章:

database - 拆分数据库不会带来表格(只有表格)

excel - 从 Sheet1 复制使用范围并粘贴到 Sheet3

c# - Visual Studio 2013 为最近的扩展方法报告错误的 "does not contain a definition for"错误

excel - 改进了清除非打印字符和其他 ASCII 字符的功能

sql - Excel VBA SQL 查询以 Access 以返回日期之间的记录

javascript - 在 vs 代码中获取有关 javascript 中函数参数对象类型的智能感知

javascript - 如何在 VS Code 上设置 AngularJS 智能感知

asp.net - 可空枚举值不显示在智能感知或设计 View 中

javascript - JavaScript 语言服务遇到错误并已关闭

excel - 获取Excel工作表的显示顺序