2014-04-10 9 views
5

Ich bin auf der Suche nach einer Select Case mit nur einem Fall - wo der Fall ist nicht gleich "P", "Ev" oder "Af".Select Case Not Oder

Das ist was ich bisher habe.

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

Der Fall 50 verschiedene Werte entsprechen könnte, und ich möchte die gleiche Aktion (unter 'my code) für alle von ihnen durchgeführt werden, es sei denn, das Ergebnis P ist, Ev oder Af.

Ich habe auch versucht Not "P", Not "Ev", Not "Af" zusammen mit , mit Or ersetzen, aber ohne Erfolg.

Die Antwort jedes Mal ist:

Run-time error '13': Type mismatch.

Ich weiß, dass ich diese nach dem Vorbild der ... mit einer if-Anweisung

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 

aber ich würde ersetzen könnte es vorziehen, zu verwenden, die Option Fall auswählen, wenn ich kann.

Irgendwelche Gedanken jemand?

Vielen Dank

EDIT

Ich möchte auch sagen, dass ich versuchen

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

mit tat, aber die Fehlermeldung:

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

gehalten Aufspringen.

Antwort

11

Sie können Not auf diese Weise nicht verwenden. Aber Sie können Refactoring

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

haben Habe ich nur noch bearbeitet, der sagt, dass ich versucht hinzuzufügen hinzufügen 'Beenden Select' (wo du geschrieben hast' 'ignorieren this'), die nicht funktioniert hat, aber von Natürlich muss ich nur keinen Code eingeben und die nächste Zeile wird weitergehen und die Auswahl verlassen! Offensichtlich einer dieser Tage ...! Danke für Ihre Hilfe. :) –