2014-04-10 14 views
5

Czekam na przeprowadzenie sprawy Select w jednym przypadku - gdzie przypadek nie jest równy "P", "Ev" lub "Af".Select Case Not Or

To jest to, co do tej pory miałem.

Select Case Range("my_range").Offset(0, column_offset).Value 
    Case Not "P", "Ev", "Af" 
     'my code 
End Select 

Sprawa mogłaby wynosić 50 różnych wartości i chcę to samo działanie (pod 'my code) należy przeprowadzić dla wszystkich z nich, chyba że wynik jest P, Ev lub AF.

Próbowałem również Not "P", Not "Ev", Not "Af" wraz z zastąpieniem , z Or, ale bezskutecznie.

Odpowiedź za każdym razem brzmi:

Run-time error '13': Type mismatch.

Wiem, że mógłbym zastąpić ten z if wzdłuż linii ...

If Range("my_range").Offset(0, column_offset).Value <> "P" And Range("my_range").Offset(0, column_offset).Value <> "Ev" And Range("my_range").Offset(0, column_offset).Value <> "Af" Then 
    'my code 
End if 

ale wolałbym używać opcja Wybierz sprawę, jeśli mogę.

Czy masz jakieś myśli?

Dziękujemy

EDIT

Pragnę również powiedzieć, że nie spróbować użyć

Select Case Range("my_range").Offset(0, column_offset).Value 
    Case "P", "Ev", "Af" 
     Exit Select 
    Case Else 
     'my code 
End Select 

ale komunikat o błędzie:

Compile error: Expected: Do or For or Sub or Function or Property

przechowywane pojawiały się.

Odpowiedz

11

W ten sposób nie można używać Not. Ale można byłaby do

Select Case Range("my_range").Offset(0, column_offset).Value 
    Case "P", "Ev", "Af" 
     'ignore this 
    Case Else 
     'my code 
End Select 
+0

Właśnie dodany zmienił, który mówi, że starałem się dodać dodać 'Wyjście Select' (gdzie masz napisane' 'ignorować this'), który nie działa, ale z Oczywiście wszystko, czego potrzebuję, to po prostu nie wpisywać kodu, a następna linia przejdzie dalej i wyjdzie z select! Najwyraźniej jeden z tych dni ...! Dzięki za pomoc. :) –