0

我在做一个小项目时遇到了问题。我希望有人可以帮助我,在此先感谢!

我想要完成什么?

我创建了动态的新 ActiveX.ComboBoxes,其中包含给定的列表。当用户选择 ComboBox 并更改所选项目时,我触发了一个事件。(这工作得很好)。

现在:我需要一个方法来检查哪个“ActiveX ComboBox”触发了事件。有什么方法可以像使用“ActiveCell”一样检查“ActiveObject”吗?问题是 ActiveCell 不起作用,因为 Cell 不只是单元上方的对象处于活动状态。

当前代码:添加新的组合框

 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

我如何触发事件:

我用了一种肮脏的方式来做到这一点

我将组合框链接到它下面的单元格。然后我在另一个单元格中写了一个公式,它应该是相同的值。然后我使用“计算”​​事件(遗憾的是它没有提供目标),例如:

Combobox1 = above Cell A2
Combobox1.linkedcell = A2
B2 = A2

现在,如果我更改组合框项目,A2 的值会发生变化,B2 的值也会随之改变,并且事件会被触发。

4

0 回答 0