If statement 在vbscript中,可以在if语句中使用两种可能的条件吗?(或)

If statement 在vbscript中,可以在if语句中使用两种可能的条件吗?(或),if-statement,vbscript,ms-word,docvariable,If Statement,Vbscript,Ms Word,Docvariable,例如: If filter_purchase = 0 Or "" Then SetDocVar "filter_purchase", "0" Else SetDocVar "filter_purchase", CStr(filter_purchase) End If 但我得到了一个“类型不匹配”。如果有比其他方法更简单的方法吗?这应该是您想要的条件 If ((filter_purchase = 0) Or (filter_purchase = "")) Then @agamike,我相信在v

例如:

If filter_purchase = 0 Or "" 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 not和not==

中使用单个=进行比较如果您只是尝试测试未初始化的变量,那么您的
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.
这三项测试都将通过。请注意如何将单个变量与字符串、数字和布尔文字进行比较。未初始化的变量还没有类型,所以这些类型的比较是完全正确的

但是,一旦将变量赋值给变量,则需要在比较时考虑其类型。例如:

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.
Dim v
v=“”
如果v=”“,则MsgBox“空字符串”传递。"" = "".
如果v=0,则MsgBox“零”失败!非法比较。
如果v=False,则MsgBox“False”失败!”“错。

既然变量已定义为保存字符串,则需要将其与其他字符串类型(文本或变量)或可转换为字符串(隐式或显式)的值进行比较。

您必须显式声明每个或多个变量的条件。请看下面

If filter_purchase = 0 Or filter_purchase = "" Then
   SetDocVar "filter_purchase", "0"
Else
   SetDocVar "filter_purchase", CStr(filter_purchase)
End If

你的意思是
filter\u purchase==0
而不是“=”吗?