很高兴获得专家的帮助:
如何找到影响特定单元格的所有命令,模型和形式?
在宏中查找该单元格将无济于事,因为其中包含一个包含该单元格的范围名称。
我很高兴收到信息/方向/概念。
如果不清楚,请给我写信。
答案 0 :(得分:2)
问题在于,没有通用的方法来找到所有会自动影响特定单元格的东西。
如果仅要测试一个视图单元,则可以在目标单元上使用Worksheet.Change Event和Stop
命令。
示例:
当通过宏或用户交互更改范围A2的值时,此操作将停止
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then Stop
End Sub
然后,您可以运行宏以测试宏是否与该单元格交互。它将在事件中停止。然后,您可以使用F8逐步进行操作,找出哪个代码触发了更改事件。但这只会触发值更改,而不会触发格式更改。
答案 1 :(得分:0)
如果要捕获修改了值的宏,请尝试以下代码:
Public macroName As String
Sub SomeMacro()
'store the name in global variable
macroName = "SomeMacro"
Cells(1, 1).Value = "new value!"
End Sub
Sub AnotherMacro()
'store the name in global variable
macroName = "AnotherMacro"
Cells(1, 1).Value = "other new value!"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' here you check what cell was modified,
' if it's not the one interesting us, exit sub
If Target.Address <> "$A$1" Then Exit Sub
MsgBox "Cell A1 modified by " & macroName
End Sub
您只需将执行宏的名称存储在全局变量中(您必须在每个宏的开始处设置),并且在发生更改时,您可以了解到哪个宏刚刚修改了感兴趣的单元格。