Excel 选择案例<&燃气轮机;多标准
我有下面的case语句代码,但是它只适用于第一个参数(debug.2和3,请有人帮助)Excel 选择案例<&燃气轮机;多标准,excel,case,vba,Excel,Case,Vba,我有下面的case语句代码,但是它只适用于第一个参数(debug.2和3,请有人帮助) Sub test() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Select Case ws.CodeName Case Is <> "Sheet1", "Sheet2" Debug.Print ws.CodeName
Sub test()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.CodeName
Case Is <> "Sheet1", "Sheet2"
Debug.Print ws.CodeName
End Select
Next ws
End Sub
子测试()
将ws设置为工作表
对于ActiveWorkbook.Worksheets中的每个ws
选择Case ws.CodeName
案例为“第1张”、“第2张”
Debug.Print ws.CodeName
结束选择
下一个ws
端接头
我无法解释为什么这不起作用,但这里有一个解决办法。你可以把它当作一个空案例来做,然后在其他案例中做你的动作
Sub test()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.CodeName
Case "Sheet1" To "Sheet2"
Case Else
Debug.Print ws.CodeName
End Select
Next ws
End Sub
或者您可以使用if语句而不是case进行测试
If ws.CodeName <> "Sheet1" AND ws.CodeName <> "Sheet2" then
Debug.Print ws.CodeName
End if
如果ws.CodeName“Sheet1”和ws.CodeName“Sheet2”,则
Debug.Print ws.CodeName
如果结束
这将起作用:
Sub test()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.CodeName
Case Is <> "Sheet1", Is <> "Sheet2"
Debug.Print ws.CodeName
End Select
Next ws
End Sub
子测试()
将ws设置为工作表
对于ActiveWorkbook.Worksheets中的每个ws
选择Case ws.CodeName
案例为“Sheet1”,案例为“Sheet2”
Debug.Print ws.CodeName
结束选择
下一个ws
端接头
这是一个好问题。我已经验证了OP所说的不起作用。Case可以使用逗号分隔的表达式列表,其中任何一个都可以触发Case。我怀疑您的代码被解释为Case(是“Sheet1”),“Sheet2”
。因此,除Sheet1之外的任何内容都将位于机箱内,而Sheet2将位于机箱内。