Могут ли пользовательские формы Excel создать комбинированный список, когда форма работает и имеет триггер для этого нового комбинированного списка? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть кнопки + и - для добавления и удаления комбинированных окон в пользовательской форме, проблема в том, что я получаю код для запуска при изменении этих новых окон.Мне было интересно, возможно ли иметь триггеры для элементов, которые не существуют, пока я не нажму кнопку + в форме?

Я попытался добавить триггеры с именем, которое будет иметь поле, но это не так.t активировать.

Это код, который я использую для создания новых блоков и их установки.

Private Sub AddRow_Click()
SearchCount = SearchCount + 1
UserForm1.Height = UserForm1.Height + 30
UserForm1.ListBox1.Top = UserForm1.ListBox1.Top + 30
UserForm1.TextBox4.Top = UserForm1.TextBox4.Top + 30
UserForm1.TextBox5.Top = UserForm1.TextBox5.Top + 30
UserForm1.TextBox6.Top = UserForm1.TextBox6.Top + 30
UserForm1.ApplyButton.Top = UserForm1.ApplyButton.Top + 30
UserForm1.ResetButton.Top = UserForm1.ResetButton.Top + 30
UserForm1.AddRow.Top = UserForm1.AddRow.Top + 30
UserForm1.RemoveRow.Top = UserForm1.RemoveRow.Top + 30

Set cmbo1 = UserForm1.Controls.Add("Forms.Combobox.1", "ColumnPicker" & SearchCount)
obj1.Add cmbo1, cmbo1.Name
Set cmbo2 = UserForm1.Controls.Add("Forms.Combobox.1", "Operator" & SearchCount)
obj2.Add cmbo2, cmbo2.Name
Set txt3 = UserForm1.Controls.Add("Forms.Textbox.1", "Condition" & SearchCount)
obj3.Add txt3, txt3.Name
Set cmbo4 = UserForm1.Controls.Add("Forms.Combobox.1", "Logic" & SearchCount)
obj4.Add cmbo4, cmbo4.Name

Count = Sheets("Analyzer").ListObjects("Analyzer").ListColumns.Count - 1
ReDim ColumnArr(Count)
With cmbo1
    .Top = 50 + (30 * (SearchCount - 1))
    .Left = 18
    .Height = 24
    .Width = 192
    For i = 0 To Count
        ColumnArr(i) = Sheets("Analyzer").Cells(3, i + 1).Value
    Next i
    For j = 0 To Count
        .AddItem (ColumnArr(j))
    Next j
End With
With cmbo2
    .Top = 50 + (30 * (SearchCount - 1))
    .Left = 216
    .Height = 24
    .Width = 180
    .AddItem ("Starts With")
    .AddItem ("Contains")
    .AddItem ("=  Equals")
    .AddItem ("!= Does Not Equal")
    .AddItem (">  Greater Than")
    .AddItem (">= Greater Than Or Equals")
    .AddItem ("<  Less Than")
    .AddItem ("<= Less Than Or Equals")
    .Text = "Contains"
End With
With txt3
    .Top = 50 + (30 * (SearchCount - 1))
    .Left = 402
    .Height = 24
    .Width = 420
End With
With cmbo4
    .Top = 50 + (30 * (SearchCount - 2))
    .Left = 828
    .Height = 24
    .Width = 60
    .AddItem ("And")
    .AddItem ("Or")
    .Text = "And"
End With
End Sub

Это макет пользовательской формы

Это пользовательская форма после добавления новых блоков

Если нет способа сделать это, мне просто нужно сначала создать поля и изменить их видимость с помощью кода, чтобыкак я могу сначала связать триггеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...