Ada*_*dam 3 vba microsoft-excel
我有一个工作簿,其中包含一组非常复杂的宏(其中 100 个)。在某个地方,其中一个宏有时会更改特定单元格中的值,但我不知道是哪一个。如果特定单元格发生更改,是否有办法暂停 VBA 执行,以便我可以看到哪个 Sub 更改了它?
teylyn 的回答很棒;我正在使用类似的前提,但不需要更新现有的宏,基本上在更新被监视的单元格时强制执行运行时错误
这是设置:监控单元的 VBA 模块(在我的情况下为单元 C3)
如果 Target 是 C3, _Change 事件会触发除以 0:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 3 And Target.Column = 3 Then Debug.Print 1 / 0
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x1
End Sub
Run Code Online (Sandbox Code Playgroud)
3 标准模块中的测试功能,每个更新单元格 A3、B3 和 C3:
Sub x1()
Cells(3, 1) = Cells(3, 1) + 1
x2
End Sub
Sub x2()
Cells(3, 3) = Cells(3, 2) + 1
x3
End Sub
Sub x3()
Cells(3, 2) = Cells(3, 3) + 1
End Sub
Run Code Online (Sandbox Code Playgroud)
当我更改工作表上的选择时,该过程开始并显示如下错误窗口:
我单击“调试”按钮,它会将我带到带有错误的 _Change 事件行:
此时我调出调用堆栈(Ctrl+ L)
这会显示所有的调用,最后一个在顶部,所以双击前一个:
更新单元格的宏将有一个绿色三角形指向更新它的确切行
| 归档时间: |
|
| 查看次数: |
1643 次 |
| 最近记录: |