2015-09-03 59 views
1

我有下面的一個case語句代碼但是它僅適用於第一個參數(debug.prints Sheet2中和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 
     End Select 
    Next ws 
End Sub 
+0

這是一個很好的問題。我已經驗證了OP所說的不起作用。 – MatthewD

+0

大小寫可以使用逗號分隔的表達式列表,其中任何一個都可以觸發該情況。我懷疑你的代碼被解釋爲'Case(Is <>「Sheet1」),「Sheet2」'。因此,任何不屬於Sheet1的情況都屬於這種情況,而Sheet2也屬於這種情況。 – xidgel

回答

1

我不能解釋爲什麼不工作,但這裏是一個變通,你可以做到這一點作爲一個空的情況下,然後做你的行爲在其他的情況。

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 
0

這將工作:

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 
相關問題