Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在VBscript中使用运算符和_Excel_Vbscript_Automated Tests - Fatal编程技术网

Excel 在VBscript中使用运算符和

Excel 在VBscript中使用运算符和,excel,vbscript,automated-tests,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 objWorkbook3.工作表中

我的函数中有以下代码行:

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
objWorkbook3.工作表中每个objSheet1的

如果objSheet1.Name“X”和objSheet1.Name“Y”和objSheet1.Name“Z”和objSheet1.Name“K”,那么
objSheet1.Delete
如果结束
下一个
结果是,我的函数删除了所有名称仅与K不同的工作表,就好像只接受此部分
objSheet1.name“K”
,我尝试了

For Each objSheet1 In objWorkbook3.Sheets
    If objSheet1.Name <> "X" And objSheet1.Name <> "Y" Then
        objSheet1.Delete
    End If
Next
objWorkbook3.工作表中每个objSheet1的

如果objSheet1.Name“X”和objSheet1.Name“Y”,那么
objSheet1.Delete
如果结束
下一个
工作正常,在VBScript中使用2个以上的
是否不可接受

我怎样才能替换它呢?

您可以使用parantesses()来执行您想要的操作。例如:

If (objSheet1.Name <> "X") And (objSheet1.Name <> "Y") And (objSheet1.Name <> "Z") and (objSheet1 <> "K") Then
    objSheet1.Delete 
End If
如果(objSheet1.Name“X”)和(objSheet1.Name“Y”)以及(objSheet1.Name“Z”)和(objSheet1“K”),则
objSheet1.Delete
如果结束
希望这有帮助。

请尝试以下方法:

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
objWorkbook3.工作表中每个objSheet1的

如果objSheet1.Name“X”,那么如果objSheet1.Name“Y”,那么如果objSheet1.Name“Z”,那么如果objSheet1.Name“K”,那么objSheet1.Delete
下一个
经过测试,它对我有效

尝试使用“&&”而不是单词和

例如:

对于objWorkbook3.表中的每个objSheet1 如果objSheet1.Name“X”&&objSheet1.Name“Y”&&objSheet1.Name“Z”&&objSheet1.Name“K”,则objSheet1.Delete
接下来

您正在检查
objSheet1“K”
Not
objSheet1.Name“K”
我如何检查名称?这不是您的代码吗?只需将
objSheet1“K”
修改为
objSheet1.Name“K”
,正如@SearchAndResQ在上面的评论中建议的那样。其余条件检查
Name
属性,但最后一个属性不匹配,因此将永远不会匹配。您发布的代码应删除工作簿中的所有工作表,除非它们被命名为X、Y、Z或K。如果不这样做:请提供证据,允许我们重现该行为。如果这不是您想要的:请详细说明您希望代码做什么。如果您的实际代码与本文中的代码匹配(包括将
objSheet1“K”
替换为
objSheet1.Name“K”的最新更新)
如果您正确地将
objWorkbook3
定义为您的
工作簿
,我看不出您的代码不起作用的原因。请确保您的实际代码中没有拼写错误,确保您已按本帖中的原样更新了它,如果它仍然不起作用,请按照问题中的要求进行操作,即条件as点中的拼写错误这些括号不影响条件的计算方式。我无法理解你的目标。你能重新表述你的问题吗?你的意思是删除除“K”之外的所有表格吗?这是对的吗?objWorkbook3是如何定义的?当我尝试使用ActiveWorkbook.Sheets时,它对我来说非常有效。请参阅下面的代码:*对于ActiveWorkbook.Sheets中的每个objSheet1,如果(objSheet1.Name“Sheet1”)和(objSheet1.Name“Y”)和(objSheet1.Name“Z”)和(objSheet1.Name“K”)然后objSheet1.Delete End If Next**谢谢你,Prabhu,我的Excel有问题(技术问题)修复后,我测试了你的建议,它可以工作,但我认为问题出在我的EXcel上,而不是代码。
&&
不是VBScript语法。谢谢你,Rani,但正如Lankymart所说,这不是VBScript语法。