Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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  

Номер ответа: 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам