在excel中需要在数据刷新上运行VBAmacros

我正在尝试提示一个macros在数据刷新上运行。 我有需要运行生成的macros,但我有一个新的值没有被使用的问题,因为embedded在表中的macros使用ActiveXcombobox调用。

我发现人们提到AfterRefresh和BeforeRefresh的几个例子,但我想我误解了这将如何生效,并调用macros。

我目前正在运行combobox,所以我有多个实例

Private Sub ComboBox22_Change() 'do stuff End Sub. 

但是我需要在数据刷新时发生“做什么”,包括自动刷新和打开表格。

我不想将刷新绑定到特定的框,因为刷新的项目不依赖于任何一个数据更改实例。

任何帮助是极大的赞赏。

谢谢。

也许工作表更改事件将有助于在这种情况下。

右键单击工作表选项卡,select“查看代码”,select“工作表”,然后“更改”。

当特定范围的单元格被更改时,代码将自动启动。

右键单击表格选项卡在这里输入图像说明

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub ' this stops code error if more than one cell is changed at once If Not Application.Intersect(Target, Me.Range("A1:C10")) Is Nothing Then ' indicates the Target range MsgBox "You have changed " & Target.Address & " to " & Target End If End Sub 

您还可以使用Worksheet_pivottableupdate事件来运行macros。 你用类似于上面davesexcel的方式来设置它。

有问题的连接可能不是数据透视表,但是您可以使用小而快的数据透视表作为触发器。

将透视表设置为与连接同时更新(例如,设置为每5分钟自刷新一次或打开工作簿)。