Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

7 Декабрь 2021, 18:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Упрощение записи сравнения нескольких значений  (Прочитано 780 раз)
0 Пользователей и 1 Гость смотрят эту тему.
p.cherevin
Участник
**
Offline Offline

Сообщений: 17


« Стартовое сообщение: 12 Август 2021, 13:43 »

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

Давно уже не использовал VBA, позабывал самое элементарное. Подскажите, пожалуйста, можно ли упростить запись такой конструкции?
 
Цитата:
if (test="b" or test="c" or test="d") then

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

Цитата:
if test=("b" or "c" or "d") then

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

Пол: Мужской
Сообщений: 752



« Ответ #1: 12 Август 2021, 14:03 »

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")
« Последнее редактирование: 12 Август 2021, 14:49 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #2: 12 Август 2021, 14:25 »

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

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

С уважением,
Михаил Каганский
p.cherevin
Участник
**
Offline Offline

Сообщений: 17


« Ответ #3: 12 Август 2021, 14:56 »

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

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

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

Пол: Мужской
Сообщений: 752



« Ответ #4: 12 Август 2021, 15:08 »

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

If test Like "[b-d]" Then

Оператор Like не документирован, но работает как в VBA.
« Последнее редактирование: 12 Август 2021, 15:10 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
p.cherevin
Участник
**
Offline Offline

Сообщений: 17


« Ответ #5: 12 Август 2021, 15:33 »

Спасибо.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!