不想在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
。
一旦你进入循环,你可以用Target
replaceCells(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