假设我有一个名为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
是一个类模块)来获取智能感知菜单,但这只包含公共方法MyPublicSub
,如下所示:
有没有办法为所有成员(公共和私人)获取智能感知菜单?我正在开发一个包含许多方法的模块的项目,并且不断上下复制/粘贴成员名称非常耗时。
答案 0 :(得分:4)
点击
的组合CTRL + SPACE
并开始输入如此处所示的子名称
你在编程方面所做的一切都很重要。当您决定将您的子/功能/变量设为私有时,您出于某种原因这样做,您需要了解这将如何影响访问级别和"范围"。
成员的范围取决于其访问级别,在VBE中任何私有且受其限制的父成员都不具备智能。简单地说,因为你不能从外面那里(不应该能够访问它)。
由于您的MyPrivateSub
访问权限级别为Private
,因此您无法通过使用Module1.
对模块进行限定来智能访问它。
答案 1 :(得分:0)
如果您从新鲜开始,您可以执行以下操作: 对于所有私有子函数,将它们命名为标准格式,但目前为公共函数,例如:
Public sub iamprivate_calDate()
Public sub iamprivate_getsetfunction()
...
完成宏后,只需在编辑器中找到并将所有“Public sub iamprivate”替换为“Private sub”。