我正在基于VBA基于excel的项目中工作,并在调用变量时输入错误。尝试调试该功能一段时间后,我意识到我正在引用一个不存在的变量(由于输入错误),但是调试器并未指出问题所在。
我试图获取变量的值,结果为空。我试图与该变量进行比较,并且每次都返回false。
我想知道它是否与Boolean
默认值有关False
(如Microsoft在此处对VB语言所说的那样)?如果是这种情况,为什么打印没有价值?
另外,调试器为什么没有显示问题?
Sub MySub()
'Print absolutely nothing
Debug.Print myVariable
If (myVariable) Then
Debug.Print "Condition is true"
Else
'The condition always comes in that
Debug.Print "Condition is false"
End If
End Sub
如果未声明该变量,则假定它是变量,并且变量的自然状态为空。
实际上,由于第一行是空的,因此第一行在“立即”窗口中打印空白行。
当您第一次使用它时,VBA假定您想将其用作布尔值,因此将其更改为布尔值,并且布尔值的基值或空值为False。
Sub MySub()
Debug.Print myVariable 'Prints and empty line As the variable is Empty Variant
If (myVariable) Then 'Treated as a Boolean with value False empty = false
Debug.Print "Condition is true"
Else
'This fires as base boolean value is False
Debug.Print "Condition is false"
End If
End Sub
如果您想弹出错误Option Explicit
,请在模块顶部使用或在设置中将其设置为默认值。
要将其设置为默认值,请转到Tools
==>Options
并单击Require Variable Declaration
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句