不想在VBA中使用自动操作macros(自发循环84-86次的macros)

我必须在VBA中创build一个简单的macros,这个macros改变了一个单元格的值。 例如,我将单元格的Excel值更改为100,并触发了macros,这将添加到此单元格值1.我做了它,但问题很奇怪…此macros触发84-86次😮我不知道为什么VBA是这样对我,但我不知道如何处理这个问题。

感谢帮助!

macros的代码:

Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("D8") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then Cells(8, 4) = Cells(8, 4) + 1 End If End Sub 

我会尽量给你点点命令。

一旦你修改了单元格“D8”,你在Worksheet_Change事件里面input了,然后把单元格的值“D8”加1,这会再次激发这个代码,等等,导致无限循环,你可以通过添加Application.EnableEvents = False ,在退出Sub之前不要忘记恢复它。

Target定义As Range ,所以你不需要使用Range(Target.Address) ,只需要使用Target

一旦你进入循环,你可以用TargetreplaceCells(8, 4) ,因为它与之前在Intersect(Target, Range("D8"))选中的Range相同。

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("D8")) Is Nothing Then Application.EnableEvents = False Target.Value = Target.Value + 1 End If Application.EnableEvents = True '<-- restore setting End Sub