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

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

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

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

Сообщений: 401


« Стартовое сообщение: 31 Январь 2018, 11:53 »

     Здравствуйте, друзья.
     Ну никак не получается работать в Calc без Вас.
     Помогите, пожалуйста.
     Проблема следующая: имеем MsgBox с тремя кнопками - "Да", "Нет" и "Отмена". И надо повесить на каждую из кнопок по условию. Что-то типа:
  
Код:
If MsgBox("Ляля", 3 + 32, "Люлю") = Да Then тралала Else
           If нет then трулюлю Else трололо
           Endif
  Но не пойму как правильно записать данную конструкцию. Для MsgBox из двух кнопок "Да" или "Нет" конструкция выглядит буквально так, как я её только что написал выше:
  
Код:
If MsgBox("Ляля", 4 + 32, "Люлю") = 6 Then тралала Else трулюлю
  Для трёх кнопок можно использовать конструкцию:
  
Код:
If MsgBox("Ляля", 3 + 32, "Люлю") = 6 Then тралала Else
            If MsgBox("Ляля", 4 + 32, "Люлю") = 7 Then трулюлю Else трололо
,
но тогда MsgBox будет выскакивать дважды, а мне нужно, чтобы он выскакивал один раз. И вот никак не могу сообразить как правильно это сделать. Помогите, пожалуйста.
Записан
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #1: 31 Январь 2018, 12:06 »

     Нашёоооооол вариант:
  
Код:
Sub Test3()
  Dim a As Integer
  a = MsgBox("Ляля", 3 + 32, "Люлю")
  If a = 6 Then
  тралала
  Else If a = 7 Then
  трулюлю
  Else
  трололо
  End If
  End Sub
Но может есть вариант по красивее/проще/удобнее?
ПС: в Calc Else If надо писать раздельно. Если слитно - он не понимает.
« Последнее редактирование: 31 Январь 2018, 12:27 от OOKapitan » Записан
Bigor
Опытный пользователь
***
Offline Offline

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


« Ответ #2: 31 Январь 2018, 12:21 »

а куда еще проще Улыбка ну можно через Case
Код:
Sub testCase
Select Case MsgBox("Ляля", 3 + 32, "Люлю")
Case 6
Print "Ok"
Case 7
Print "No"
Case Else
Print "Xz"
End select
End Sub
Записан
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #3: 31 Январь 2018, 12:25 »

ну можно через Case
Огромнейшее спасибо. Мне и казалось, что есть способ без объявления переменной. А ведь знал же про Сase, но непонятно почему не вспомнил. Видимо надо освежить свои знания  Смеющийся .
« Последнее редактирование: 31 Январь 2018, 12:31 от OOKapitan » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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