Динамическое событие изменения ActiveX.ComboBox - PullRequest
0 голосов
/ 09 мая 2018

У меня проблема при работе над небольшим проектом. Я надеюсь, что кто-то может помочь мне, спасибо заранее!

Чего я пытаюсь достичь?

Я создаю новые динамические ActiveX.ComboBox с заданным списком в нем. Когда пользователь выбирает ComboBox и изменяет выбранный элемент в списке, мне нужно событие для запуска. Для каждого динамического выпадающего списка событие должно быть одинаковым. Пример: комбинированный список в D10 изменяется с «ItemA» на «ItemB», затем мне нужно событие, которое проверяет в таблице наличие «ItemB» (столбец A), а затем выбирает значение той же строки столбца B и помещает его в столбец E10, где находится комбинированный ящик.

Я понятия не имею, как добавить DynamicEvents и затем позволить им действовать одинаково. И даже если мне все еще нужно удалять события динамически, так как пользователь может снова удалить строки и комбинированные списки.

Что я пробовал:

Связав Combobox с его ячейкой под ним, а затем я попытался заставить работать событие «Изменение рабочего листа», но, очевидно, оно не работает с связанными ячейками ....

Текущий код:

 Sub NewComboBox(ByVal Row As Integer, Name As String, CellWidth As Integer,  CellHeight As Integer)

    Set ourCombo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                Link:=True, DisplayAsIcon:=False, Left:=plan.Cells(Row, CellNumber_Product).Left, Top:=plan.Cells(Row, CellNumber_Product).Top, Width:=CellWidth, _
                Height:=CellHeight)
        With ourCombo
            .LinkedCell = plan.Cells(Row, CellNumber_Product).Address          
            .ListFillRange = "DTB_1!A:A"

End Sub

1 Ответ

0 голосов
/ 09 мая 2018
Private Sub ComboBox1_Change()

    CB1=ComboBox1.Value
    R=WorksheetFunction.Match(CB1, Columns("A:A"),0)

    Activesheet.OLEObjects("ComBox2").ListFillRange =Cells(R,2).Address

End Sub
...