我已经创建了一个类模块,我在其中定义了一个函数。无论何时调用该函数,它都会在本地窗口中列出两次。只有第二个值的变化,第一个值根据其类型保持为空或“零”,直到代码执行结束。我在标准模块中定义的函数没有这个问题。我做错了什么,这是一个错误,还是有这背后的逻辑原因?为什么我的函数名在“locals”窗口中出现两次?
所述的TestClass类模块的内容:标准模块的
Public Value As Double
Function AddFive() As Double
AddFive = Me.Value + 5
End Function
内容:
Sub TestSub()
Dim TestObject As New TestClass
TestObject.Value = 2
MsgBox TestObject.AddFive
End Sub
下面是一个屏幕截图示出了,当执行该代码行由在函数的代码执行后,函数的值在本地窗口中列出两次,并且只有第二个值已经更改。
我使用VBA的Excel 2010中
在此先感谢。
请发表您的代码。 – brettdj 2012-02-05 02:52:48
VBA函数中有一个与函数名称相同的隐式变量。你在你的片段中分配的那个。变化的是隐式变量,不是实际函数的返回值,只有在退出函数后才进行计算。 – 2012-02-05 16:36:56
如果函数是在标准模块中定义的,则函数的返回值不会出现在本地窗口中。为什么只有隐含变量出现? – Cutter 2012-02-05 16:46:44