(VBA)将ComboBox + macroevent放在单元格更改上

时间:2014-02-27 15:37:56

标签: vba events combobox cell

我正在尝试将组合框放在活动工作表中(但不是activeX组合框),选择一个列表来填充和链接单元格。这是一项简单的任务,例如:

Sub make_combobox()

ActiveSheet.DropDowns.Add(69.75, 1.5, 79.5, 40.5).Select
Selection.Name = "combo"
ActiveSheet.Shapes("combo").Select
With Selection
    .ListFillRange = "$A$1:$A$3"
    .LinkedCell = "$D$1"
    .DropDownLines = 8
    .Display3DShading = False
End With

End Sub

我尝试将宏放在包含此组合框的工作表中,每当根据组合框中选择的选项更改所选链接单元格时,将显示msgbox。我在工作表部分写了这个:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("D1")) Is Nothing Then
    MsgBox "It works!"
End If

End Sub

不幸的是,它不起作用(实际上,当我手动更改D1中的值,但由于组合框中的更改而无效时,它可以正常工作)。

1 个答案:

答案 0 :(得分:1)

只需使用OnAction属性为控件分配宏。它将在对Combobox值的每次更改后运行。