powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / OptionButton
13 сообщений из 13, страница 1 из 1
OptionButton
    #36238874
Insainer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня проблема - при нажатии CommandButton VBA полностью игнорирует OptionButton - ы. Кто-нибудь сталкивался с такой проблемой. Мне необходима проверка условия OptionButton'а.
...
Рейтинг: 0 / 0
OptionButton
    #36239061
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Insainer

Ничего не понял, можно ещё раз и более подробно и понятно

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OptionButton
    #36239276
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНичего не понял, можно ещё раз и более подробно и понятно Аналогично. И желательно код приведите. Даже я б сказал обязательно.
...
Рейтинг: 0 / 0
OptionButton
    #36239642
Insainer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на форме кнопка для построения отчетов, которая запускает макрос. Так вот, во избежании штамповки большого количества кнопок, думаю, логично было бы оставить одну кнопку "Построить отчет" с предусловием - выбора вида отчета при помощи объектов OptionButton.
Мне показалось логичным такая программная реализация:

If OptionButton1.Enabled = True Then
[Построить отчет1]
Exit Sub
End If

If OptionButton2.Enabled = True Then
[Построить отчет2]
Exit Sub
End If

If OptionButton3.Enabled = True Then
[Построить отчет3]
Exit Sub
End If
и т.д.
, однако на деле я VBA просто игнорирует мою логическую структуру и запускает вставки из макрос - кода все подряд. Я, по видимому, неправильно понял механизм работы OptionButton. Вопрос поставил меня в замешательство...?
...
Рейтинг: 0 / 0
OptionButton
    #36239685
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub CommandButton1_Click()

If OptionButton1.Value = True Then
MsgBox  1 
Exit Sub
End If

If OptionButton2.Value = True Then
MsgBox  2 
Exit Sub
End If

If OptionButton3.Value = True Then
MsgBox  3 
Exit Sub
End If

End Sub
...
Рейтинг: 0 / 0
OptionButton
    #36239695
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если в редакторе ВБА зайти в Properties этих баттонов, то там видно, что разница между ними не в Enabled (они все такие), а в Value = True or False
...
Рейтинг: 0 / 0
OptionButton
    #36239767
Insainer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо...
...
Рейтинг: 0 / 0
OptionButton
    #36239788
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, с чекбоксами тоже самое - Value True or False. Properties элементов надо смотреть в Design Mode.
...
Рейтинг: 0 / 0
OptionButton
    #36240729
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и мне кажется, так было бы проще код модифицировать да и вообще...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub CommandButton1_Click()

If OptionButton1.Value = True Then one: Exit Sub
If OptionButton2.Value = True Then two: Exit Sub
If OptionButton3.Value = True Then three: Exit Sub

End Sub

Sub one()
MsgBox  1 
End Sub

Sub two()
MsgBox  2 
End Sub

Sub three()
MsgBox  3 
End Sub
...
Рейтинг: 0 / 0
OptionButton
    #36270526
Insainer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопрос: Как проверить на наличие рабочий лист Excel, то есть если лист "Расчет" есть, то ничего, если нет, то Sheets.Add().Name = "Расчет"
...
Рейтинг: 0 / 0
OptionButton
    #36270779
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один из возможных вариантов - обработка ошибки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub Test()

On Error GoTo errorhandler ' стандартная обработка ошибок

On Error Resume Next ' временная обработка ошибок
Set shttest = Sheets("Расчет")
If shttest Is Nothing Then
Sheets.Add().Name = "Расчет"
End If

On Error GoTo errorhandler ' возвращаем стандартную обработку ошибок

Exit Sub

errorhandler:
MsgBox "Ошибка!"
Exit Sub

End Sub
...
Рейтинг: 0 / 0
OptionButton
    #36270833
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Другой вариант - обойти все листы и проверить имя. Нашли - меняем флаг.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Test2()

shtest =  0 
For Each sh In ActiveWorkbook.Sheets
If sh.Name = "Расчет" Then shtest =  1 
Next
If shtest =  0  Then Sheets.Add().Name = "Расчет"

End Sub
...
Рейтинг: 0 / 0
OptionButton
    #36270958
Insainer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, мой проект почти готов... Только во втором варианте Dim пропущено. Осталось ошибки переработать...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / OptionButton
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]