我正在尝试在visual basic上为应用程序实现和自动更改功能。我录制了一个宏,它从一张纸上获取信息并插入一个新行并将信息粘贴到另一张纸上。这个宏本身可以正常运行,但是当指定的单元格被更改时,我无法自动运行它。以下是我试图实施的事件:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("f3")) Is Nothing Then Macro9999
End Sub
“f3”是我要复制到另一张纸上的新行的第一张纸上的信息。 Macro9999
是我为实现此目的而设计的宏的名称。这是Macro9999
:
Sub Macro9999()
Sheets("9999").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Sheet1").Select
Range("E3:F3").Select
Selection.Copy
Sheets("9999").Select
Range("A4:B4").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End Sub
当我在第一张纸上更改单元格“f3”时没有任何反应,是否有我遗漏的东西?感谢
答案 0 :(得分:1)
一个可能的原因是EnableEvents
设置为False。
在运行实际宏之前将其设置为True:
Sub subEnableEvents()
If Not (Application.EnableEvents) Then Application.EnableEvents = True
End Sub