(VBA)放置组合框+;细胞变化的宏观事件
我试图在活动工作表(但不是activeX combobox)中放置一个组合框,选择要填充的列表并链接单元格。这是一项简单的任务,例如:(VBA)放置组合框+;细胞变化的宏观事件,vba,events,combobox,cell,Vba,Events,Combobox,Cell,我试图在活动工作表(但不是activeX combobox)中放置一个组合框,选择要填充的列表并链接单元格。这是一项简单的任务,例如: 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
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中的值时,它起作用,但由于combobox中的更改而不起作用)。只需使用
OnAction
属性为控件指定宏即可。它将在对组合框的值进行每次更改后运行 谢谢大家!!但是我仍然想知道为什么它不把链接单元格中的更改视为执行宏的冲动。我认为你不会得到一个明确的答案。事件处理程序在事件发生时被激发。显然,Excel开发人员决定在通过组合框更改更新单元格值时不会引发此类事件。我认为这样做是可行的,原因是您有Combobox\u Change
事件处理程序来处理这个问题。如果您可以同时使用这两种方法,那么您可能会“复制”一个事件,我无法想象这样的结果是令人满意的。