Упрощение записи сравнения нескольких значений

Автор p.cherevin, 12 августа 2021, 13:43

0 Пользователи и 1 гость просматривают эту тему.

p.cherevin

Здравствуйте.

Давно уже не использовал VBA, позабывал самое элементарное. Подскажите, пожалуйста, можно ли упростить запись такой конструкции?

Цитироватьif (test="b" or test="c" or test="d") then

Что-нибудь типа

Цитироватьif test=("b" or "c" or "d") then

P/S/ Может создать закреплённую тему с «тупыми» вопросами, чтобы не плодить лишние темы?

eeigor

#1
Dim test$: test = "a"
Select Case test
Case "b", "c", "d"
   MsgBox "YES"
Case Else
   MsgBox "NO"
End Select

Dim pattern$: pattern = "[b-d]"  '[bcd]
If test Like pattern Then
   MsgBox "YES"
Else
   MsgBox "NO"
End If

Select Case True
Case test Like pattern
    MsgBox "YES"
Case Else
    MsgBox "NO"
End Select

Dim text$: text = "b"
MsgBox IIf(StrComp(text, test, 0) = 0, "YES", "NO")  'case insensitive

Rem Ну, и также через FunctionAccess и функции рабочего листа в зависимости от сложности сравнений.

A2: ="a"
B2: =IF(COUNTIF({"b";"c";"d"};A2)>0;"YES";"NO")
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Цитата: p.cherevin от 12 августа 2021, 13:43P/S/ Может создать закреплённую тему с «тупыми» вопросами, чтобы не плодить лишние темы?

Не нужно. В чём вред "лишних" тем, которые могут быть найдены при поиске релевантного ключевого слова и могут помочь (в отличие от "помоечной" темы, которая уже никому никогда не пригодится)?
С уважением,
Михаил Каганский

p.cherevin

Спасибо большое eeigor!

Цитата: mikekaganski от 12 августа 2021, 14:25Не нужно. В чём вред "лишних" тем, которые могут быть найдены при поиске релевантного ключевого слова и могут помочь (в отличие от "помоечной" темы, которая уже никому никогда не пригодится)?

Не знаю в чём вред, может быть БД сильно увеличивается, но на многих форумах ругают за создание "лишних" тем.

eeigor

#4
Я вспомнил для себя некоторый синтаксис... но точный ответ на ваш вопрос такой:

If test Like "[b-d]" Then

Оператор Like не документирован, но работает как в VBA.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community