一个例子是:
If filter_purchase = 0 Or "" Then
SetDocVar "filter_purchase", "0"
Else
SetDocVar "filter_purchase", CStr(filter_purchase)
End If
但是我得到了类型不匹配'。有没有比做Else IF更简单的方法?
答案 0 :(得分:2)
您必须明确说明每个OR的条件。请看下面的
If filter_purchase = 0 Or filter_purchase = "" Then
SetDocVar "filter_purchase", "0"
Else
SetDocVar "filter_purchase", CStr(filter_purchase)
End If
答案 1 :(得分:0)
这应该是你想要的条件
If ((filter_purchase = 0) Or (filter_purchase = "")) Then
@agamike,我相信单个=用于比较vbs,如果不是,而不是== link here
答案 2 :(得分:0)
如果您只是尝试测试未初始化的变量,那么您的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.
现在变量已被定义为包含字符串,需要将其与其他字符串类型(文字或变量)或可以(隐式或显式)强制转换为字符串的值进行比较。