组合框的链接单元格更改时自动执行宏

时间:2019-01-30 04:03:13

标签: excel vba

我有一系列2个组合框。我有一个名为Generate的宏,它将根据第一个组合框返回的数字更改第二个组合框的选项。但是,这需要用户按下按钮才能执行此宏。我希望此宏在第一个组合框的链接单元格中的数字更改时自动执行。

这是我之前尝试过的代码,但是链接单元格中的B2更改似乎并未触发该事件。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then Generate
End Sub

2 个答案:

答案 0 :(得分:0)

如前所述,Worksheet_Change事件只会通过物理更改单元格来触发,因此您链接的单元格将没有任何作用。

如果这是另一个wb中的一个单元格,需要触发您的Generate子对象,那么我建议对上述wb使用Worksheet_Change事件。

在我自己的项目中,我在regular module中有一个潜艇:

Dim AddNew As Workbook
Set AddNew = Workbooks("") 'change this
Set oWb.Workbook = AddNew

然后,在class module中:

Public WithEvents m_wb As Workbook
Public Property Set Workbook(wb As Workbook)
Set m_wb = wb
End Property

Public Property Get Workbook() As Workbook
Set Workbook = m_wb
End Property

Public Sub m_wb_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'In here, you could trigger the Generate Sub if a specific cell changes
End Sub

答案 1 :(得分:0)

最简单的解决方案是为第一个组合框提供一个输入范围,并为其分配一个Generate