VBA / Excel:跟踪另一个工作表的前导不起作用

时间:2014-08-13 13:02:04

标签: excel-vba vba excel

我最近开始与朋友的Excel项目合作,制作宏。我主要是通过"记录宏"函数,因为我不熟悉Visual Basic自己编写代码,并且没有足够的时间来学习该语言。

一切顺利,直到我了解到ctrl- [无法跟踪宏中的一个单元格的先例,因为它只是选择了第一个先例所链接的单元格,并且不会在将来发生变化先例。我查找了如何在Visual Basic中编写代码并最终使用&#34; Selection.Precedents.Select&#34;追踪细胞的先例。因为我尝试链接到的先例位于不同的工作表(仍然在同一工作簿中),它返回&#34;运行时错误&#39; 1004&#39;:没有找到单元格。&#34; < / p>

看起来像这样:

Range("U5").Select
Selection.Precedents.Select

因为这不起作用,我去了#34; Trace Precedents&#34; “公式审计”选项卡上的按钮,它能够追溯到另一​​个工作表上的先例(ctrl- [也用于选择单元格])。然后,我使用不同的单元格作为同一张纸上的先例测试了一个宏(因此U5链接到V5,而不是另一张纸上的单元格),并且它能够选择先前的单元格。

我做了一些研究,发现了许多答案,只是说&#34;使用Selection.Precedents.Select&#34;,我做了,但它没有工作。

编辑: 我得到了它,我必须这样做:

Worksheets("Sensitivity Table").Activate
Range("U5").Select
Range("U5").ShowPrecedents
ActiveCell.NavigateArrow True, 1

可能不是最有效的方法,但据我所知,它有效。您只需删除代码末尾的箭头即可。

1 个答案:

答案 0 :(得分:3)

范围对象的 Precedents 属性仅适用于当前工作表上的范围。要获得所有先例,您需要解析公式。

请参阅:

Charles Williams Answer

Colin Legg's Blog

中讨论了一种典型的方法