一个例子是:
If filter_purchase = 0 Or "" Then
SetDocVar "filter_purchase", "0"
Else
SetDocVar "filter_purchase", CStr(filter_purchase)
End If
但我得到一个“类型不匹配”。还有比做其他 IF 更简单的方法吗?
一个例子是:
If filter_purchase = 0 Or "" Then
SetDocVar "filter_purchase", "0"
Else
SetDocVar "filter_purchase", CStr(filter_purchase)
End If
但我得到一个“类型不匹配”。还有比做其他 IF 更简单的方法吗?
您必须明确说明每个 OR 的条件。请看下面
If filter_purchase = 0 Or filter_purchase = "" Then
SetDocVar "filter_purchase", "0"
Else
SetDocVar "filter_purchase", CStr(filter_purchase)
End If
这应该是你想要的条件
If ((filter_purchase = 0) Or (filter_purchase = "")) Then
@agamike,我相信一个 = 用于在 vbs 中进行比较,如果不是,而不是 ==链接在这里
如果您只是想测试一个未初始化的变量,那么您的If
表达式实际上是多余的。VBScript 中的所有变量都是变体,所有变体都以默认值0/False/""
. 例如:
Dim v
If v = "" Then MsgBox "Empty string"
If v = 0 Then MsgBox "Zero"
If v = False Then MsgBox "False"
所有这三个测试都将通过。请注意如何将单个变量与字符串、数字和布尔文字进行比较。未初始化的变量还没有类型,所以这些比较完全没问题。
但是,一旦为变量赋值,在进行比较时就需要考虑其类型。例如:
Dim v
v = ""
If v = "" Then MsgBox "Empty String" ' Pass. "" = "".
If v = 0 Then MsgBox "Zero" ' Fail! Illegal comparison.
If v = False Then MsgBox "False" ' Fail! "" <> False.
既然已将变体定义为包含字符串,则需要将其与其他字符串类型(文字或变量)或可以强制转换(隐式或显式)为字符串的值进行比较。