我刚刚发现 Me 关键字无法访问私有过程,即使它们位于其自己的类模型中。
在 Class1 中取以下代码:
Private Sub Message()
Debug.Print "Some private procedure."
End Sub
Public Sub DoSomething()
Me.Message
End Sub
此代码实例化该类的一个实例:
Sub TestClass()
Dim objClass As New Class1
objClass.DoSomething
End Sub
Me.Message
抛出编译错误“找不到方法或数据成员”。
如果我改变Private Sub Message()
程序Public
工作正常。我也可以从 DoSomething 过程中删除 Me 关键字,但我的印象是 Me 关键字背后的想法是确保 Class1 的多个实例被正确封装。
为什么VBA Me关键字不能访问自己模块中的私有程序?省略 Me 关键字并在课堂上做这样的事情是否安全?
Private Sub Message()
Debug.Print "Some private procedure."
End Sub
Public Sub DoSomething()
Message
End Sub
谢谢!
更新:感谢有关正确语法的提示,我的代码正在运行。我仍在寻找解释为什么我可以在它自己的模块的实例中引用私有过程。我找不到任何好的文档。