我正在开发一个基于VBA excel的项目,并在调用变量时输入错误.在尝试调试函数一段时间后,我意识到我正在引用一个不存在的变量(因为错字)但调试器没有指出问题.
我试图获取变量的值,结果为空.我试图与变量进行比较,每次都返回false.
我想知道,如果它有什么做的Boolean是默认值False(作为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
Run Code Online (Sandbox Code Playgroud)
如果您未声明变量,则假定它是变量,变量的自然状态为Empty.
实际上第一行是在立即窗口中打印一个空行,因为它是空的.
首次使用时,因为你有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
Run Code Online (Sandbox Code Playgroud)
如果要弹出错误,请使用Option Explicit模块顶部或在设置中将其设置为默认值.
要将其设置为默认值,请转到Tools==> Options并单击Require Variable Declaration
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |