Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции Ну, например, тут [vba]
Code
Sub Макрос1() Range("A1:C5").Select MsgBox "Вы уверены, что хотите продолжить?" ' На выбор 2 варианта ответа: Да и Нет ' Если Нет, то goto Range("D1").Select (или сразу goto end sub) ' Если Да, то Selection.ClearContents Range("D1").Select End Sub
[/vba]
Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции Ну, например, тут [vba]
Code
Sub Макрос1() Range("A1:C5").Select MsgBox "Вы уверены, что хотите продолжить?" ' На выбор 2 варианта ответа: Да и Нет ' Если Нет, то goto Range("D1").Select (или сразу goto end sub) ' Если Да, то Selection.ClearContents Range("D1").Select End Sub
Sub Макрос1() Dim xx Range("A1:C5").Select xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") If xx = 6 Then: Selection.ClearContents: Range("D1").Select If xx = 7 Then: Exit Sub End Sub
[/vba]
vbYes=6 vbNo=7
[vba]
Code
Sub Макрос1() Dim xx Range("A1:C5").Select xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") If xx = 6 Then: Selection.ClearContents: Range("D1").Select If xx = 7 Then: Exit Sub End Sub
Sub Макрос1() Dim xx Range("A1:C5").Select xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") ' что такое vb? If xx = 6 Then: Selection.ClearContents: Range("D1").Select ' я правильно понимаю, что через двоеточие можно указать макросу выполнить несколько действий? If xx = 7 Then: Exit Sub End Sub
[/vba] Почему для vbYes используется именно 6, а для vbNo - 7? И что они значат?
ABC, для особо одаренных, пожалуйста: [vba]
Code
Sub Макрос1() Dim xx Range("A1:C5").Select xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") ' что такое vb? If xx = 6 Then: Selection.ClearContents: Range("D1").Select ' я правильно понимаю, что через двоеточие можно указать макросу выполнить несколько действий? If xx = 7 Then: Exit Sub End Sub
[/vba] Почему для vbYes используется именно 6, а для vbNo - 7? И что они значат?light26
Я не волшебник. Я только учусь
Сообщение отредактировал light26 - Воскресенье, 02.09.2012, 11:36
Sub Макрос1() Range("A1:C5").Select If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7 Selection.ClearContents Range("D1").Select End Sub
[/vba]
еще так можно: [vba]
Code
Sub Макрос1() Range("A1:C5").Select If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7 Selection.ClearContents Range("D1").Select End Sub
Sub Макрос1() Dim xx xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26") If xx = 2 Then: MsgBox "Отмена", , "Вы нажали на кнопку" If xx = 6 Then: MsgBox "Да", , "Вы нажали на кнопку" If xx = 7 Then: MsgBox "Нет", , "Вы нажали на кнопку" End Sub
[/vba]
вариант кнопки [vba]
Code
Sub Макрос1() Dim xx xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26") If xx = 2 Then: MsgBox "Отмена", , "Вы нажали на кнопку" If xx = 6 Then: MsgBox "Да", , "Вы нажали на кнопку" If xx = 7 Then: MsgBox "Нет", , "Вы нажали на кнопку" End Sub
Так я же написал в прошлом посте, что справка английская.
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Quote
Так я же написал в прошлом посте, что справка английская.
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Sub Макрос1() Dim xx xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26") If xx = 2 Then: MsgBox "Отмена", , "Вы отменили выполнение процедуры" 'например, отказ от выполнения ряда команд и возврат к исходному значению If xx = 6 Then: MsgBox "Да", , "Вы продолжаете" If xx = 7 Then: MsgBox "Нет", , "Вы отказываетесь от продолжения" 'например, отказ от выполнения только следующей процедуры End Sub
[/vba]
ABC, но ведь можно и так [vba]
Code
Sub Макрос1() Dim xx xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26") If xx = 2 Then: MsgBox "Отмена", , "Вы отменили выполнение процедуры" 'например, отказ от выполнения ряда команд и возврат к исходному значению If xx = 6 Then: MsgBox "Да", , "Вы продолжаете" If xx = 7 Then: MsgBox "Нет", , "Вы отказываетесь от продолжения" 'например, отказ от выполнения только следующей процедуры End Sub
Сергей, да я и не отмазываюсь. Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке
Сергей, да я и не отмазываюсь. Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справкеlight26
Я не волшебник. Я только учусь
Сообщение отредактировал light26 - Воскресенье, 02.09.2012, 12:11
В Библиотеке форума есть вполне пристойная книга П. Эйткена "Интенсивный курс программирования в Excel за выходные": http://www.excelworld.ru/index/vba/0-12 . Про MsgBox там на страницах 123-125 весьма подробно излагается. На русском .
P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр.
Quote (light26)
справка английская
В Библиотеке форума есть вполне пристойная книга П. Эйткена "Интенсивный курс программирования в Excel за выходные": http://www.excelworld.ru/index/vba/0-12 . Про MsgBox там на страницах 123-125 весьма подробно излагается. На русском .
P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр.Gustav
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно).
Quote (KuklP)
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно)._Boroda_