Страница: 1 |
|
Вопрос: Помогите с программированием в Exceell
|
Добавлено: 26.12.02 10:29
|
|
Автор вопроса: Sonoma
|
написал данный код Private Sub CommandButton1_Click() Unload Me UserForm4.Show If OptionButton1.Value = True Then Worksheets.Item("Pricelist").Activate Dim optiplex As Range Set optiplex = Range("b5:b20") Dim vars As Variant For Each vars In optiplex If vars.Value Like "*GX240*" Then UserForm4.ComboBox1.AddItem (vars) End If Next End If If OptionButton2.Value = True Then Worksheets.Item("Pricelist").Activate Dim optiplex1 As Range Set optiplex1 = Range("b5:b20") Dim vars1 As Variant For Each vars1 In optiplex1 If vars1.Value Like "*GX150*" Then UserForm4.ComboBox1.AddItem (vars1) End If Next End If End Sub
Но возникла проблема, когда выбирается радиобох то но замыкает то ничего не показывает то показывает данные которые должны быть при выборе другого радиобокса, и возможно ли этот код оптимизировать с помощью конструкций Case Select и как это можно сделать
Ответить
|
Номер ответа: 1 Автор ответа: vig11
ICQ: 213777061
Вопросов: 21 Ответов: 159
|
Профиль | | #1
|
Добавлено: 26.12.02 11:44
|
Во-первых когда пишешь код старайся распологать начало и конец начальные буквы циклов (например If и End if, For и Next и т.д.) одну под другой по вертикали, а внутренние строки сдвигай Tab-ом. Так будет понятней и проще читать код. Во-вторых я не понял строчку Unload Me. Если Ты выгружаешь какую-то форму, то добавь Set formName = Nothing, если эта строчка относится к UserForm4, то зачем делать Unload если следующей строкой Ты ее (форму) загружаешь. В-третьих если взять Твой код, то Ты вначале проверяешь один radiobutton, а затем другой, т.е. незачем во втором If-е вводить новые переменные, мойно использовать старые. В-четвертых я бы дал обеим radiobatton-ам одно и то же имя например Opt, но разные индексы, т.е. сделал бы группу, тогда можно было бы обойтись одним If-ом. If Opt(0) = True Then код обрабатывающий первый случай ElseIf Opt(1) = True Then код обрабатывающий второй случай End If В-пятых когда Ты добавляешь строки в ComboBox UserForm4.ComboBox1.AddItem ,то почему строчку ставишь в скобках ( (vars) ). Проверь, не тут ли программа выпадает. Да и ещё одно перед заполнением ComboBox стоит (если не нужно сохранять предыдущую информацию) сделать UserForm4.ComboBox1.Clear
Ответить
|
Страница: 1 |
Поиск по форуму