是否有任何工具可以跟踪 Excel 单元格和 VBA 代码的依赖性?

Sof*_*mur 5 excel dependencies vba

Excel 具有跟踪单元格的precedentsdependents的功能(通过 menu Tools > Auditing)。例如,如果我们有= C3 + 1in C4,那么 Excel 可以跟踪它C4C3(C3是 的先例C4)的依赖项。

由于 VBA 代码对 Excel 单元格也有影响,我想知道是否有任何工具可以跟踪 VBA 代码和 Excel 单元格之间的依赖关系。

例如,如果有一行 VBA 代码Range("C4").Value = Range("C3").Value + 1,是否有跟踪工具C4可能依赖于C3

另外,如果有一行VBA代码Range("C4").Value = 5,是否有工具可以跟踪C4这段代码可能会修改?

Adr*_*tti 2

VBA 所做的更改无法轻松跟踪(因为单元格可以通过函数以任意方式修改或作为字符串传递给函数)。

你可以做一些事情,但它有点棘手,我想它不会真正让你满意:你可以检测一个单元格是否有任何依赖性。

怎么运行的?写一个这样的宏:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
End Sub
Run Code Online (Sandbox Code Playgroud)

您可以将更改的单元格记录到立即窗口。现在更改单元格值,在立即窗口中,您将看到依赖于您更改的单元格的所有单元格。缺点?

  • 不幸的是,逆过程是不可能的:您无法选择一个单元格并查看其所有依赖项。
  • 该过程无法(真正)自动化,因为从代码中通常您不知道单元格的有效值(您可以通过单元格类型猜测,但由于规则而无法确定,“0”可能是有效值,“1”可能是有效值) “不,例如)。
  • 它无法真正检测到每个依赖项(如果两个给定值不会在单元格中产生更改,那么您将看不到该依赖项)。
  • 对于大型工作表,它可能非常乏味,因此仅当应用于一小组单元格时才会显示(如果我更改/移动此单元格怎么办?它会影响什么吗?)