使用运算符和VBscript

时间:2016-10-06 08:42:59

标签: excel vbscript automated-tests

我的函数中有这个代码行:

For Each objSheet1 In objWorkbook3.Sheets
    If objSheet1.Name <> "X" And objSheet1.Name <> "Y" And objSheet1.Name <> "Z" And objSheet1.Name <> "K" Then
        objSheet1.Delete
    End If
Next

结果是我的函数删除了名称与K不同的所有工作表,就好像只接受了此部分objSheet1.Name <> "K"一样,我试过了

For Each objSheet1 In objWorkbook3.Sheets
    If objSheet1.Name <> "X" And objSheet1.Name <> "Y" Then
        objSheet1.Delete
    End If
Next

工作正常,在VBScript中使用超过2 And是不可接受的?

我该如何更换呢?

3 个答案:

答案 0 :(得分:0)

请试试这个:

For Each objSheet1 In objWorkbook3.Sheets
    If objSheet1.Name <> "X" Then If objSheet1.Name <> "Y" Then If objSheet1.Name <> "Z" Then If objSheet1.Name <> "K" Then objSheet1.Delete
Next

经过测试,对我有用。!

答案 1 :(得分:-2)

尝试使用“&amp;&amp;”而不是和

这个词

喜欢这些:

对于每个objSheet1在objWorkbook3.Sheets中     如果objSheet1.Name&lt;&gt; “X”&amp;&amp; objSheet1.Name&lt;&gt; “Y”&amp;&amp; objSheet1.Name&lt;&gt; “Z”&amp;&amp; objSheet1.Name&lt;&gt; “K”然后是objSheet1.Delete 下一步

答案 2 :(得分:-3)

您可以使用parantheses()按预期执行。比如这个:

If (objSheet1.Name <> "X") And (objSheet1.Name <> "Y") And (objSheet1.Name <> "Z") and (objSheet1 <> "K") Then
    objSheet1.Delete 
End If

希望这有帮助。