Всем доброе утро. Коллеги, помогите пожалуйста оптимизировать один кусочек кода. Есть у меня на форме 4 OptionButton - их объединил по GroupName - KURS. Так Вот понимаю что как то неправильно делать вот так в коде и наверное это делается как то через GroupName:
[vba]
Код
Private Sub OptionButton1_Click() TextBox3.Value = 1 TextBox3.Enabled = False End Sub
Private Sub OptionButton2_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
Private Sub OptionButton3_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
Private Sub OptionButton4_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
[/vba]
но как сделать по другому не знаю, как можно сократить такие 4 куска в 1?
И эта же проблема меня затронула дальше, когда нужно разносить данные по ячейкам то делаю, такую вот громоздкую проверку, этих же OptionButton, хотя уверен что можно заменить в пару строк, но вот чем заменить, совсем не пойму:
[vba]
Код
If OptionButton1.Value = True Then Cells(iRow, 7).Value = "UAH" Else If OptionButton2.Value = True Then Cells(iRow, 7).Value = "USD" Else If OptionButton3.Value = True Then Cells(iRow, 7).Value = "EUR" Else If OptionButton4.Value = True Then Cells(iRow, 7).Value = "RUR" End If End If End If End If
[/vba]
Я понимаю что заменить 4 такие радиоточки на 1 комбобокс и проблема исчезнет, но хочу именно через радиоточки. Заранее благодарю за помощь.
Всем доброе утро. Коллеги, помогите пожалуйста оптимизировать один кусочек кода. Есть у меня на форме 4 OptionButton - их объединил по GroupName - KURS. Так Вот понимаю что как то неправильно делать вот так в коде и наверное это делается как то через GroupName:
[vba]
Код
Private Sub OptionButton1_Click() TextBox3.Value = 1 TextBox3.Enabled = False End Sub
Private Sub OptionButton2_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
Private Sub OptionButton3_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
Private Sub OptionButton4_Click() TextBox3.Value = "" TextBox3.Enabled = True TextBox3.Locked = False End Sub
[/vba]
но как сделать по другому не знаю, как можно сократить такие 4 куска в 1?
И эта же проблема меня затронула дальше, когда нужно разносить данные по ячейкам то делаю, такую вот громоздкую проверку, этих же OptionButton, хотя уверен что можно заменить в пару строк, но вот чем заменить, совсем не пойму:
[vba]
Код
If OptionButton1.Value = True Then Cells(iRow, 7).Value = "UAH" Else If OptionButton2.Value = True Then Cells(iRow, 7).Value = "USD" Else If OptionButton3.Value = True Then Cells(iRow, 7).Value = "EUR" Else If OptionButton4.Value = True Then Cells(iRow, 7).Value = "RUR" End If End If End If End If
[/vba]
Я понимаю что заменить 4 такие радиоточки на 1 комбобокс и проблема исчезнет, но хочу именно через радиоточки. Заранее благодарю за помощь.DJ_Marker_MC
Здрасьте. Мне кажется можно и так оставить. Или как-то так [vba]
Код
Private Sub CommandButton1_Click() Dim ctl As Control For Each ctl In Me.Frame1.Controls If ctl.Value = True Then MsgBox ctl.Name Cells(10, 1) = ctl.Caption End If Next End Sub
[/vba] добавил фрейм с радиокнопками и баттон с Private Sub CommandButton1_Click() (см. 1-ю процедуру в модуле формы)
Здрасьте. Мне кажется можно и так оставить. Или как-то так [vba]
Код
Private Sub CommandButton1_Click() Dim ctl As Control For Each ctl In Me.Frame1.Controls If ctl.Value = True Then MsgBox ctl.Name Cells(10, 1) = ctl.Caption End If Next End Sub
[/vba] добавил фрейм с радиокнопками и баттон с Private Sub CommandButton1_Click() (см. 1-ю процедуру в модуле формы)nilem
nilem, БОЛЬШОЕ СПАСИБО! я так понял, данный вариант можно взять вместо громоздкой проверки IF ... THEN в конце, а вот чем то заменить 4 шт OptionButton1_Click() нечем да и незачем?
nilem, БОЛЬШОЕ СПАСИБО! я так понял, данный вариант можно взять вместо громоздкой проверки IF ... THEN в конце, а вот чем то заменить 4 шт OptionButton1_Click() нечем да и незачем?DJ_Marker_MC
Сообщение отредактировал DJ_Marker_MC - Среда, 16.10.2013, 11:33
Если бы у Вас были 40 радиокнопок, то эффективнее было бы использовать класс, и изменение состояния любой из этих р-кнопок всегда приводило бы к возникновению одно и того же события. Так реально удобнее. Но из-за 4-х кнопок лучше не заморачиваться и оставить OptionButton1_Click() как есть. имхо.
Ну да, а проверку лучше делать с ctl as Control
Если бы у Вас были 40 радиокнопок, то эффективнее было бы использовать класс, и изменение состояния любой из этих р-кнопок всегда приводило бы к возникновению одно и того же события. Так реально удобнее. Но из-за 4-х кнопок лучше не заморачиваться и оставить OptionButton1_Click() как есть. имхо.
Ну да, а проверку лучше делать с ctl as Controlnilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Среда, 16.10.2013, 11:43