假设我有一个名为 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
,如下所示:
是否有某种方法可以为所有成员(公共(public)和私有(private))获取智能感知菜单?我正在开发一个包含许多方法的模块的项目,不断上下复制/粘贴成员名称非常耗时。
最佳答案
简短回答
点击组合
CTRL+空格
然后开始输入子名称,如下所示
长答案
你在编程中所做的一切都很重要。当您决定将子/函数/变量设为私有(private)时,您这样做是有原因的,并且您需要了解这将如何影响访问级别和“范围”。
成员的范围由其访问级别决定,在 VBE 中,任何私有(private)且由其父成员限定的内容都不会获得智能感知。简单地说,因为您无法(不应该能够)从外部访问它。
由于您的 MyPrivateSub
访问级别为 Private
,因此您无法通过使用 Module1.
限定模块来使用智能感知来访问它。
关于vba - 私有(private)模块中的智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24387837/