我正在尝试使用以下VBA宏在单元格中输入特定字符时更改其内容。
Sub replaceWords()
Dim i As Long
Dim r As Integer
For i = 1 To 60
For r = 1 To 60
If Cells(i, r).Value = "`" Then
Cells(i, r).Value = "0,0"
End If
Next r
Next i
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("A1:AA100")) Is Nothing Then
Application.EnableEvents = False
Call replaceWords
Application.EnableEvents = True
End If
End Sub
我的理解是Worksheet_Change
应该自动执行此操作,但似乎不起作用-我必须手动运行宏。我在做什么错了?
答案 0 :(得分:1)
代码尚不清楚,但是请通过转到项目资源管理器(Ctrl-R)并右键单击有问题的工作表并选择“查看代码”,来确保Worksheet_Change
在Worksheet
对象中。将worksheet_change
模块放入其中。
答案 1 :(得分:0)
确保该功能在工作表的模块中。如果仍然不起作用,请检查Application.EnableEvents
是否设置为True
。
在代码进行更改时,将该值设置为false。如果您的代码在重置为True之前已被中断,则不会触发事件驱动的子对象。
在正常退出的地方添加一些错误处理并将EnableEvents重置为True通常是一个好主意。