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)
Но вопрос по предыдущему посту остается открытым. Где ошибка была в варианте прошлого поста?
[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)
Но вопрос по предыдущему посту остается открытым. Где ошибка была в варианте прошлого поста?
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]
Код
Sub Далее() If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbYes Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select End Sub
[/vba] И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно. И для того они (константы) и введены, чтобы проще писАть было.
Абсолютно не понимаю, зачем лишнюю переменную назначать? Так, наверное, короче:[vba]
Код
Sub Далее() If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbYes Then: Sheets(Array("Внимание", "2003", "2007-2010", "Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select End Sub
[/vba] И к тому же, Вадим, зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно. И для того они (константы) и введены, чтобы проще писАть было.
Ну а уж если задаться целью максимально уменьшить количество буковок не взирая на ухудшение читабельности, то, используя цифровые значения констант, процедуру можно урезать до:[vba]
Код
Sub Далее() If MsgBox("Вы уверены, что хотите продолжить?", 4, "Light26") - 7 Then: Sheets(Split("Внимание 2003 2007-2010 Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select End Sub
[/vba]
Ну а уж если задаться целью максимально уменьшить количество буковок не взирая на ухудшение читабельности, то, используя цифровые значения констант, процедуру можно урезать до:[vba]
Код
Sub Далее() If MsgBox("Вы уверены, что хотите продолжить?", 4, "Light26") - 7 Then: Sheets(Split("Внимание 2003 2007-2010 Версия")).Visible = False: Sheets("Инструкция").Visible = True: Sheets("Инструкция").Select End Sub
Да, Вадим, принцип верный, только не забывай о визуальном переносе строк, как я показал в примере. Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается. Так намного удобнее смотреть код.
Цитата (light26)
Я правильно понял?
Да, Вадим, принцип верный, только не забывай о визуальном переносе строк, как я показал в примере. Пробел с нижним подчеркиванием технически строку не переносит, а видимость переноса создается. Так намного удобнее смотреть код._Boroda_
зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно.
Леш, я тоже Что легче запомнить, vbAbortRetryIgnore, или 2? xlCellTypeVisible, или 12, xlCellTypeConstants, или 2? А уж вероятность ошибиться в правильном написании имени константы... Да и короче, аккуратней код становится. Так что на любителя.
Цитата (Alex_ST)
зачем Вы постоянно вместо констант Excel'я используете их числовые значения? Ведь их, не посмотрев в Справке, запомнить невозможно.
Леш, я тоже Что легче запомнить, vbAbortRetryIgnore, или 2? xlCellTypeVisible, или 12, xlCellTypeConstants, или 2? А уж вероятность ошибиться в правильном написании имени константы... Да и короче, аккуратней код становится. Так что на любителя. KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Серёга, никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную А код, действительно, становится намного короче, но и менее читабельным без залезания в справку. Ведь если написано [vba]
Код
If MsgBox("Open VBE?", vbYesNo + vbQuestion) = vbYes Then …
[/vba]то сразу понятно и какие кнопки на окне, и какой его тип, и что выполнится при нажатии на "Да" А вот над такой записью абсолютно того же: [vba]
Код
If MsgBox("Open VBE?", 36) - 7 Then …
[/vba] нужно ещё и сильно подумать. И без Справки я бы, например, не разобрался какое окошко, какие на нём кнопки и нажатие на какую кнопку обрабатывается
Серёга, никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную А код, действительно, становится намного короче, но и менее читабельным без залезания в справку. Ведь если написано [vba]
Код
If MsgBox("Open VBE?", vbYesNo + vbQuestion) = vbYes Then …
[/vba]то сразу понятно и какие кнопки на окне, и какой его тип, и что выполнится при нажатии на "Да" А вот над такой записью абсолютно того же: [vba]
Код
If MsgBox("Open VBE?", 36) - 7 Then …
[/vba] нужно ещё и сильно подумать. И без Справки я бы, например, не разобрался какое окошко, какие на нём кнопки и нажатие на какую кнопку обрабатываетсяAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 09:24
Леша если кто-то захочет что-то изменить, добавить, убрать, то в справку все равно лезть придется. А менее читабельным он становится как раз от нагромождения длиннющих имен констант. ИМХО Я помню значения многих констант, а вот их имена запомнить, да потом еще и написать без ошибок для меня затруднительно. И я тоже не обхожусь без справки
Цитата (Alex_ST)
но и менее читабельным без залезания в справку.
Леша если кто-то захочет что-то изменить, добавить, убрать, то в справку все равно лезть придется. А менее читабельным он становится как раз от нагромождения длиннющих имен констант. ИМХО Я помню значения многих констант, а вот их имена запомнить, да потом еще и написать без ошибок для меня затруднительно. И я тоже не обхожусь без справки KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную
И свой код изначально я всегда пишу и отлаживаю с константами. А уж потом, если захочется добиться максимальной краткости, то заменяю на их значения
Цитата (Alex_ST)
никто эти константы от руки и не вводит - они сами появляются при вводе в подсказке и остаётся только выбрать нужную
И свой код изначально я всегда пишу и отлаживаю с константами. А уж потом, если захочется добиться максимальной краткости, то заменяю на их значенияAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Вторник, 05.03.2013, 09:26
И свой код изначально я всегда пишу и отлаживаю с константами.
Гигант! А я из констант цвета, например, помню только vbRed. Поэтому пишу ее, топаю F1, а дальше выбираю, что не лениво - цифирьку написать , или текст скопировать.
Цитата (Alex_ST)
И свой код изначально я всегда пишу и отлаживаю с константами.
Гигант! А я из констант цвета, например, помню только vbRed. Поэтому пишу ее, топаю F1, а дальше выбираю, что не лениво - цифирьку написать , или текст скопировать. RAN
Не, ну уж основные цветовые кностанты типа vbred, vbgreen, vbyellow, vbblue, vbwhite, vbblack я всё-таки пишу с ходу (тем более, что они не подсказываются при вводе) И то, что подсказывается (само на мышку просится), естественно, ввожу константами. Ну а за остальным приходится в справку лазить. Но всё равно, при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями. Ведь пойди пойми какие спец.ячейки выделяются по .SpecialCells(12) А если написано .SpecialCells(xlCellTypeVisible) , то всё сразу и без справки ясно.
Не, ну уж основные цветовые кностанты типа vbred, vbgreen, vbyellow, vbblue, vbwhite, vbblack я всё-таки пишу с ходу (тем более, что они не подсказываются при вводе) И то, что подсказывается (само на мышку просится), естественно, ввожу константами. Ну а за остальным приходится в справку лазить. Но всё равно, при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями. Ведь пойди пойми какие спец.ячейки выделяются по .SpecialCells(12) А если написано .SpecialCells(xlCellTypeVisible) , то всё сразу и без справки ясно.Alex_ST
значение -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
Правда, ТОЧНО, что это значит, я не понял (инглиш у меня уж слишком сильно хромает)
А при проверке в окне 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
Правда, ТОЧНО, что это значит, я не понял (инглиш у меня уж слишком сильно хромает)Alex_ST
Я своё мнение об использовании числовых значений констант уже высказал:
Цитата (Alex_ST)
при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.
А если Вы настолько круты, что понимаете логику работы кода, в котором вместо имён осмысленных констант используются их числовые значения, то флаг Вам в руки! Экспериментируйте дальше.
Я своё мнение об использовании числовых значений констант уже высказал:
Цитата (Alex_ST)
при первоначальном написании кода и его отладке намного удобнее пользоваться хоть и длинными, но всё-таки осмысленными именами констант, чем их значениями.
А если Вы настолько круты, что понимаете логику работы кода, в котором вместо имён осмысленных констант используются их числовые значения, то флаг Вам в руки! Экспериментируйте дальше.Alex_ST