在VBA类模块中(例如在Excel或Access中),我编写了一个函数SomeFunction()返回一个值。
如果我从类中的另一个函数/子调用它,是否应该调用它:
( a)这样:myVar = SomeFunction或
( b)这边:myVar = Me.SomeFunction?
我认为这两种方法都很有用,所以除了写作风格和清晰的SomeFunction是课程的一部分之外,这有什么区别吗?
发布于 2018-08-09 13:10:55
两者都是有效的,但是方式B应该是首选的,因为它更明确您正在做的事情。
考虑以下(有效)类代码:
Public Property Get SomeValue() As Integer
SomeValue = 5
End Property
Public Property Get AnotherValue() As Integer
Dim SomeValue As Integer
SomeValue = 3
AnotherValue = SomeValue 'Returns 3
Debug.Print Me.SomeValue 'Returns 5
End Property因为您可以(但不应该)在VBA中这样做,所以使用Me.来明确您使用的是类属性而不是变量是一个很好的实践。
发布于 2018-08-09 13:10:48
据我所知-这没什么区别。
但是,如果在类中使用Me.,则可以使用Intellisense查看可用的子、函数和属性,这可能有点方便:

但是,我宁愿不使用Me。
如果模块中有以下内容:
Public Function Foo()
Foo = 5
End Function
Sub TestMe()
Dim cls As New Klasse1
cls.TestMe
End Sub然后在Klasse1中进行以下操作
Sub TestMe()
Debug.Print Modul1.Foo
Debug.Print Me.Foo
Debug.Print Foo
End Sub
Function Foo()
Foo = 10
End Function可见,Me.的存在仅仅是语法上的糖。
https://stackoverflow.com/questions/51767628
复制相似问题