Выберите дело не или
Я рассчитываю выполнить Выбор случая только с одним случаем - где случай не равен "P", "Ev" или "Af".
Это то, что я до сих пор.
Select Case Range("my_range").Offset(0, column_offset).Value
Case Not "P", "Ev", "Af"
'my code
End Select
Случай может равняться 50 различным значениям, и я хочу одно и то же действие (под 'my code
) для всех из них, за исключением случаев, когда P, Ev или Af.
Я также пытался Not "P", Not "Ev", Not "Af"
наряду с заменой ,
с Or
но безрезультатно.
Ответ каждый раз:
Ошибка времени выполнения "13": несоответствие типов.
Я знаю, что мог бы заменить это на утверждение if в соответствии с...
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
но я бы предпочел использовать опцию Select Case, если смогу.
Есть какие-нибудь мысли?
Большое спасибо
РЕДАКТИРОВАТЬ
Я должен также сказать, что я пытался использовать
Select Case Range("my_range").Offset(0, column_offset).Value
Case "P", "Ev", "Af"
Exit Select
Case Else
'my code
End Select
но сообщение об ошибке:
Ошибка компиляции: ожидается: Do или For или Sub или Function или Property
продолжал появляться
1 ответ
Вы не можете использовать Not
в этом случае. Но вы можете рефакторинг
Select Case Range("my_range").Offset(0, column_offset).Value
Case "P", "Ev", "Af"
'ignore this
Case Else
'my code
End Select
Я знаю, что этот вопрос задавали очень давно, но сегодня я наткнулся на то же самое чудо: Not
Оператор?
Я тоже не нашел этого Not
можно использовать, но вместо этого можно использовать этот метод:
Select Case [variable]
Case is <> [condition 1]
'my code
End Select