Я хотел бы знать, как продолжить работу Select Case после того, как он встретит первое выражение, которое оценивается как true.
Этого не может быть, потому что согласно спецификациям языка блоки Case
не "проваливаются" в VBA, поэтому, если у вас было это:
Select Case Z
Case Is < 15
MsgBox "less than 15"
Case Is < 10
MsgBox "less than 10"
Case Else
MsgBox "greater than or equal to 10"
End Select
Тогда второй Case
будет эвристически недоступен - и инструмент статического анализа кода, такой как Rubberduck (отказ от ответственности: я участвую в этом проекте с открытым исходным кодом), может предупредить об этом:
Думайте о Select...Case
как о более чистом способе записи If...ElseIf...ElseIf...ElseIf...ElseIf...
блоков: все условия должны быть взаимоисключающими, и должна выполняться только одна ветвь.
Если вам нужны два или более условных блока для запуска, вы не можете использовать Select...Case
, потому что это не то, что делает If...ElseIf...ElseIf...
: если вам нужны два или более условных блока для запуска, вам нужно два или более отдельных условные блоки (If...End If
).