Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запрос в VBA "Да", "Нет" - Страница 4 - Мир MS Excel

Старая форма входа
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запрос в VBA "Да", "Нет"
Запрос в VBA "Да", "Нет"
_Boroda_ Дата: Понедельник, 04.03.2013, 19:19 | Сообщение № 61
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
[vba]
Код
Sub Далее()
Dim i
     i = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If i = 6 Then: _
         Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: _
         Sheets("Инструкция").Visible = True: _
         Sheets("Инструкция").Select
     If i = 7 Then: Exit Sub
End Sub
[/vba]
все после двоеточия должно быть на одной строке
Цитата (light26)
Но вопрос по предыдущему посту остается открытым. Где ошибка была в варианте прошлого поста?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[vba]
Код
Sub Далее()
Dim i
     i = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If i = 6 Then: _
         Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: _
         Sheets("Инструкция").Visible = True: _
         Sheets("Инструкция").Select
     If i = 7 Then: Exit Sub
End Sub
[/vba]
все после двоеточия должно быть на одной строке
Цитата (light26)
Но вопрос по предыдущему посту остается открытым. Где ошибка была в варианте прошлого поста?

Автор - _Boroda_
Дата добавления - 04.03.2013 в 19:19
light26 Дата: Понедельник, 04.03.2013, 20:12 | Сообщение № 62
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (_Boroda_)
все после двоеточия должно быть на одной строке

Я правильно понял?
[vba]
Код
Sub Далее()
Dim i
     i = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If i = 6 Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
     If i = 7 Then: Exit Sub
End Sub
[/vba]


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (_Boroda_)
все после двоеточия должно быть на одной строке

Я правильно понял?
[vba]
Код
Sub Далее()
Dim i
     i = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If i = 6 Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
     If i = 7 Then: Exit Sub
End Sub
[/vba]

Автор - light26
Дата добавления - 04.03.2013 в 20:12
Alex_ST Дата: Понедельник, 04.03.2013, 21:59 | Сообщение № 63
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Абсолютно не понимаю, зачем лишнюю переменную назначать?
Так, наверное, короче:[vba]
Код
Sub Далее()
      If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbYes Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
End Sub
[/vba]
И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно. И для того они (константы) и введены, чтобы проще писАть было.
Цитата (Справка Excel)
vbOK 1
vbCancel 2
vbAbort 3
vbRetry 4
vbIgnore 5
vbYes 6
vbNo 7



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 04.03.2013, 22:03
 
Ответить
СообщениеАбсолютно не понимаю, зачем лишнюю переменную назначать?
Так, наверное, короче:[vba]
Код
Sub Далее()
      If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbYes Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
End Sub
[/vba]
И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно. И для того они (константы) и введены, чтобы проще писАть было.
Цитата (Справка Excel)
vbOK 1
vbCancel 2
vbAbort 3
vbRetry 4
vbIgnore 5
vbYes 6
vbNo 7

Автор - Alex_ST
Дата добавления - 04.03.2013 в 21:59
Alex_ST Дата: Понедельник, 04.03.2013, 22:12 | Сообщение № 64
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну а уж если задаться целью максимально уменьшить количество буковок не взирая на ухудшение читабельности, то, используя цифровые значения констант, процедуру можно урезать до:[vba]
Код
Sub Далее()
      If MsgBox("Вы уверены, что хотите продолжить?", 4, "Light26") - 7 Then: Sheets(Split("Внимание 2003 2007-2010 Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 04.03.2013, 22:14
 
Ответить
СообщениеНу а уж если задаться целью максимально уменьшить количество буковок не взирая на ухудшение читабельности, то, используя цифровые значения констант, процедуру можно урезать до:[vba]
Код
Sub Далее()
      If MsgBox("Вы уверены, что хотите продолжить?", 4, "Light26") - 7 Then: Sheets(Split("Внимание 2003 2007-2010 Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 04.03.2013 в 22:12
light26 Дата: Понедельник, 04.03.2013, 23:02 | Сообщение № 65
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Alex_ST)
И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения?

Алекс, знаете как я пишу макрос? Комбинирую имеющиеся примеры и записи макрорекордера )))


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Alex_ST)
И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения?

Алекс, знаете как я пишу макрос? Комбинирую имеющиеся примеры и записи макрорекордера )))

Автор - light26
Дата добавления - 04.03.2013 в 23:02
_Boroda_ Дата: Вторник, 05.03.2013, 04:05 | Сообщение № 66
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата (light26)
Я правильно понял?

Да, Вадим, принцип верный, только не забывай о визуальном переносе строк, как я показал в примере. Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается. Так намного удобнее смотреть код.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата (light26)
Я правильно понял?

Да, Вадим, принцип верный, только не забывай о визуальном переносе строк, как я показал в примере. Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается. Так намного удобнее смотреть код.

Автор - _Boroda_
Дата добавления - 05.03.2013 в 04:05
light26 Дата: Вторник, 05.03.2013, 06:58 | Сообщение № 67
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (_Boroda_)
Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается.

Спасибо, Саш. Урок усвоен smile


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (_Boroda_)
Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается.

Спасибо, Саш. Урок усвоен smile

Автор - light26
Дата добавления - 05.03.2013 в 06:58
KuklP Дата: Вторник, 05.03.2013, 07:50 | Сообщение № 68
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (Alex_ST)
зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно.
Леш, я тоже smile Что легче запомнить, vbAbortRetryIgnore, или 2? xlCellTypeVisible, или 12, xlCellTypeConstants, или 2? А уж вероятность ошибиться в правильном написании имени константы... Да и короче, аккуратней код становится. Так что на любителя. biggrin


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Цитата (Alex_ST)
зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно.
Леш, я тоже smile Что легче запомнить, vbAbortRetryIgnore, или 2? xlCellTypeVisible, или 12, xlCellTypeConstants, или 2? А уж вероятность ошибиться в правильном написании имени константы... Да и короче, аккуратней код становится. Так что на любителя. biggrin

Автор - KuklP
Дата добавления - 05.03.2013 в 07:50
Alex_ST Дата: Вторник, 05.03.2013, 09:11 | Сообщение № 69
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Серёга,
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную
А код, действительно, становится намного короче, но и менее читабельным без залезания в справку.
Ведь если написано [vba]
Код
If MsgBox("Open VBE?", vbYesNo + vbQuestion) = vbYes Then …
[/vba]то сразу понятно и какие кнопки на окне, и какой его тип, и что выполнится при нажатии на "Да"
А вот над такой записью абсолютно того же:
[vba]
Код
If MsgBox("Open VBE?", 36) - 7 Then …
[/vba]
нужно ещё и сильно подумать. И без Справки я бы, например, не разобрался какое окошко, какие на нём кнопки и нажатие на какую кнопку обрабатывается



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 09:24
 
Ответить
СообщениеСерёга,
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную
А код, действительно, становится намного короче, но и менее читабельным без залезания в справку.
Ведь если написано [vba]
Код
If MsgBox("Open VBE?", vbYesNo + vbQuestion) = vbYes Then …
[/vba]то сразу понятно и какие кнопки на окне, и какой его тип, и что выполнится при нажатии на "Да"
А вот над такой записью абсолютно того же:
[vba]
Код
If MsgBox("Open VBE?", 36) - 7 Then …
[/vba]
нужно ещё и сильно подумать. И без Справки я бы, например, не разобрался какое окошко, какие на нём кнопки и нажатие на какую кнопку обрабатывается

Автор - Alex_ST
Дата добавления - 05.03.2013 в 09:11
KuklP Дата: Вторник, 05.03.2013, 09:21 | Сообщение № 70
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (Alex_ST)
но и менее читабельным без залезания в справку.
Леша если кто-то захочет что-то изменить, добавить, убрать, то в справку все равно лезть придется. А менее читабельным он становится как раз от нагромождения длиннющих имен констант. ИМХО biggrin Я помню значения многих констант, а вот их имена запомнить, да потом еще и написать без ошибок для меня затруднительно. И я тоже не обхожусь без справки sad


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Цитата (Alex_ST)
но и менее читабельным без залезания в справку.
Леша если кто-то захочет что-то изменить, добавить, убрать, то в справку все равно лезть придется. А менее читабельным он становится как раз от нагромождения длиннющих имен констант. ИМХО biggrin Я помню значения многих констант, а вот их имена запомнить, да потом еще и написать без ошибок для меня затруднительно. И я тоже не обхожусь без справки sad

Автор - KuklP
Дата добавления - 05.03.2013 в 09:21
Alex_ST Дата: Вторник, 05.03.2013, 09:23 | Сообщение № 71
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Цитата (Alex_ST)
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную

И свой код изначально я всегда пишу и отлаживаю с константами.
А уж потом, если захочется добиться максимальной краткости, то заменяю на их значения



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 09:26
 
Ответить
Сообщение
Цитата (Alex_ST)
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную

И свой код изначально я всегда пишу и отлаживаю с константами.
А уж потом, если захочется добиться максимальной краткости, то заменяю на их значения

Автор - Alex_ST
Дата добавления - 05.03.2013 в 09:23
RAN Дата: Вторник, 05.03.2013, 09:47 | Сообщение № 72
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Alex_ST)
И свой код изначально я всегда пишу и отлаживаю с константами.

Гигант! А я из констант цвета, например, помню только vbRed. Поэтому пишу ее, топаю F1, а дальше выбираю, что не лениво - цифирьку написать , или текст скопировать. biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Alex_ST)
И свой код изначально я всегда пишу и отлаживаю с константами.

Гигант! А я из констант цвета, например, помню только vbRed. Поэтому пишу ее, топаю F1, а дальше выбираю, что не лениво - цифирьку написать , или текст скопировать. biggrin

Автор - RAN
Дата добавления - 05.03.2013 в 09:47
Alex_ST Дата: Вторник, 05.03.2013, 10:05 | Сообщение № 73
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Не, ну уж основные цветовые кностанты типа vbred, vbgreen, vbyellow, vbblue, vbwhite, vbblack я всё-таки пишу с ходу (тем более, что они не подсказываются при вводе)
И то, что подсказывается (само на мышку просится), естественно, ввожу константами.
Ну а за остальным приходится в справку лазить. Но всё равно, при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.
Ведь пойди пойми какие спец.ячейки выделяются по .SpecialCells(12)
А если написано .SpecialCells(xlCellTypeVisible) , то всё сразу и без справки ясно.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНе, ну уж основные цветовые кностанты типа vbred, vbgreen, vbyellow, vbblue, vbwhite, vbblack я всё-таки пишу с ходу (тем более, что они не подсказываются при вводе)
И то, что подсказывается (само на мышку просится), естественно, ввожу константами.
Ну а за остальным приходится в справку лазить. Но всё равно, при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.
Ведь пойди пойми какие спец.ячейки выделяются по .SpecialCells(12)
А если написано .SpecialCells(xlCellTypeVisible) , то всё сразу и без справки ясно.

Автор - Alex_ST
Дата добавления - 05.03.2013 в 10:05
RAN Дата: Вторник, 05.03.2013, 10:18 | Сообщение № 74
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И еще о константах
С год назад писал макрос.
Не знаю, где собака порылась, но вот строку
[vba]
Код
SaveAs FileFormat:=xlWorkbookNormal
[/vba]
заставить работать не удалось, а строка
[vba]
Код
SaveAs FileFormat:=-4143
[/vba]
работает без вопросов.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИ еще о константах
С год назад писал макрос.
Не знаю, где собака порылась, но вот строку
[vba]
Код
SaveAs FileFormat:=xlWorkbookNormal
[/vba]
заставить работать не удалось, а строка
[vba]
Код
SaveAs FileFormat:=-4143
[/vba]
работает без вопросов.

Автор - RAN
Дата добавления - 05.03.2013 в 10:18
Alex_ST Дата: Вторник, 05.03.2013, 10:35 | Сообщение № 75
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
А при проверке в окне Immediate по
Код
? xlWorkbookNormal
значение -4143 показывалось?
Вообще-то в справке написано, что
Цитата
Remarks
Some of these constants may not be available to you, depending on the language support (U.S. English, for example) that you’ve selected or installed
Правда, ТОЧНО, что это значит, я не понял sad (инглиш у меня уж слишком сильно хромает)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА при проверке в окне Immediate по
Код
? xlWorkbookNormal
значение -4143 показывалось?
Вообще-то в справке написано, что
Цитата
Remarks
Some of these constants may not be available to you, depending on the language support (U.S. English, for example) that you’ve selected or installed
Правда, ТОЧНО, что это значит, я не понял sad (инглиш у меня уж слишком сильно хромает)

Автор - Alex_ST
Дата добавления - 05.03.2013 в 10:35
light26 Дата: Среда, 06.03.2013, 00:58 | Сообщение № 76
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Alex_ST)
никто эти константы от руки и не вводит

Мне дали пример, я с ним экспериментирую. Не получается - пишу сюда.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Alex_ST)
никто эти константы от руки и не вводит

Мне дали пример, я с ним экспериментирую. Не получается - пишу сюда.

Автор - light26
Дата добавления - 06.03.2013 в 00:58
Alex_ST Дата: Среда, 06.03.2013, 09:08 | Сообщение № 77
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Я своё мнение об использовании числовых значений констант уже высказал:
Цитата (Alex_ST)
при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.

А если Вы настолько круты, что понимаете логику работы кода, в котором вместо имён осмысленных констант используются их числовые значения, то флаг Вам в руки! Экспериментируйте дальше.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЯ своё мнение об использовании числовых значений констант уже высказал:
Цитата (Alex_ST)
при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.

А если Вы настолько круты, что понимаете логику работы кода, в котором вместо имён осмысленных констант используются их числовые значения, то флаг Вам в руки! Экспериментируйте дальше.

Автор - Alex_ST
Дата добавления - 06.03.2013 в 09:08
Сно Дата: Вторник, 12.03.2013, 14:01 | Сообщение № 78
Группа: Гости
http://vba.besaba.com/
Тут описаны все виды информационных сообщений
 
Ответить
Сообщениеhttp://vba.besaba.com/
Тут описаны все виды информационных сообщений

Автор - Сно
Дата добавления - 12.03.2013 в 14:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запрос в VBA "Да", "Нет"
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!