Событие Change

Тема в разделе "Visual Basic", создана пользователем WolfOfTambov, 24 янв 2013.

  1. WolfOfTambov

    WolfOfTambov New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    Здрасте товарищи. Есть такой код.
    Код (Text):
    Private Sub UserForm_Initialize()
    'список плавких вставок
    With Combo_PPN
    .AddItem "ППН200"
    .AddItem "ППН400"
    .AddItem "ППН500"
    .AddItem "ППН630"
    End With
    'выводим значение текущих уставок
    With UserForm1
    .Combo_ty.Value = Range("G4")
    .Combo_Kots.Value = Range("отсечка")
    .Combo_Diap.Value = Range("диапазон")
    .Combo_Iy.Value = Range("E4")
    .Combo_PPN.Value = Range("вставка")
    .Combo_umnt.Value = Range("коэфф_врем_текст")
    .Combo_Un.Value = Range("U_1")
    .Combo_Str.Value = Range("Sном")
    .Combo_RelePKL = Range("ПКЛ")
    .Combo_TipTr = Range("тип_тр")
    End With
    End Sub

    Private Sub Combo_PPN_Change()
    'изменяем график плавкой вставки
    Worksheets("формулы").Activate
    Range("вставка").Value = Combo_PPN.Value
    PPN
    End Sub
    При загрузке формы создаются поля комбосписка Combo_PPN, и ему присваивается значение из ячейки"вставка". При выборе какого-либо значения из списка это значение записывается в ячейку "вставка" и выводится соответствующий график (процедура PPN).
    Проблема в том, что событие Change наступает при любом изменении комбосписка, в том числе и при создании полей при запуске формы. Нельзя ли сделать так, чтоб оно наступало только при выборе значения из списка?
     
  2. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    используй клик, а не чанге
     
  3. WolfOfTambov

    WolfOfTambov New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    все равно обрабатывается при загрузке.
    да, я забыл. программка сделана в excel 2003
     
  4. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Код (LotusScript):
    Dim RED As Boolean

    Private Sub ComboBox1_Click()
    If Not RED Then
    MsgBox "Ok"
    End If
    End Sub

    Private Sub UserForm_Initialize()
    Dim i
    RED = True
    For i = 1 To 10
    ComboBox1.AddItem i
    Next i
    RED = False
    End Sub
     
  5. WolfOfTambov

    WolfOfTambov New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    Спасибо большое. усвоил
     
  6. WolfOfTambov

    WolfOfTambov New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    А разве таким же образом нельзя было использовать change?
     
  7. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Я же не знаю какое событие вы используете. А если попробовать, то можно увидеть, что при выборе из списка события Change не наступает. Наступает только клик. А вот если пробовать писать в окне то будет чанге. Комбик чаще используют именно для выбора из списка поэтому и клик
     
  8. WolfOfTambov

    WolfOfTambov New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    может быть, дело вот в чем?
    или вот в чем
    Код (Text):
    'выводим значение текущих уставок
    With UserForm1
    .Combo_ty.Value = Range("G4")
    .Combo_Kots.Value = Range("отсечка")
    .Combo_Diap.Value = Range("диапазон")
    .Combo_Iy.Value = Range("E4")
    .Combo_PPN.Value = Range("вставка")
    .Combo_umnt.Value = Range("коэфф_врем_текст")
    .Combo_Un.Value = Range("U_1")
    .Combo_Str.Value = Range("Sном")
    .Combo_RelePKL = Range("ПКЛ")
    .Combo_TipTr = Range("тип_тр")
    End With
     
  9. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Ну да, здесь событие изменение, а не клик.
    Но в таком режиме я практически никогда не использую комбо.
    Он для этого и придуман. Не вписывать значения, а выбирать из списка.
    В крайнем случае добавлять в список но не вписывать.
    Даже часто задают вопрос как запретить ручной ввод в поле текстбокса
     
Загрузка...
Похожие Темы - Событие Change
  1. vadpetr
    Ответов:
    0
    Просмотров:
    1.165
  2. NickProstoNick
    Ответов:
    2
    Просмотров:
    651
  3. Bob84
    Ответов:
    37
    Просмотров:
    4.888
  4. Мыш
    Ответов:
    1
    Просмотров:
    1.095
  5. Num2
    Ответов:
    0
    Просмотров:
    1.309

Поделиться этой страницей