excel VBA自动运行macros,每当一个单元格更改

有没有一种简单的方法让Excel自动执行macros,每当一个单元格更改?

有问题的单元格将在Worksheet("BigBoard").Range("D2")

我认为简单的谷歌调查被certificate是更复杂 – 每个样本涉及相交(不pipe是什么)或颜色格式或任何其他数目似乎是无关紧要的。

是的,这可以通过使用工作表事件来实现:

在Visual Basic编辑器中,通过双击左上angular树中的工作表名称,打开您感兴趣的工作表(即“BigBoard”)。 在模块中放置以下代码:

 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub Application.EnableEvents = False 'to prevent endless loop On Error Goto Finalize 'to re-enable the events MsgBox "You changed THE CELL!" Finalize: Application.EnableEvents = True End Sub 

另一个select是

 Private Sub Worksheet_Change(ByVal Target As Range) IF Target.Address = "$D$2" Then MsgBox("Cell D2 Has Changed.") End If End Sub 

我相信这比Intersect使用更less的资源,如果您的工作表发生了很大变化,这将会很有帮助。

在试图find一种方法来使交叉方法的目标单元格为一个名称表数组时,我偶然发现了一个简单的方法来在特定工作表上的任意单元格或一组单元格更改时运行某些操作。 该代码也被放置在工作表模块中:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 0 Then 'mycode here end if end sub