在Excel中通过VBA的第一层先前单元格的地址

在debugging工具栏上,您可以单击一个button,显示由选定单元直接调用的单元格的直接箭头(我将这些直接的先例称为“第一层”)。 但是,在单元格上使用Precedents属性时,它会返回单元格所依赖的表单上的所有单元格。

例如,我有单元格DT836与公式:

 =DP836+DR836+DS836 

“Trace Precedents”debugging工具栏显示一个很好的蓝色箭头,将这三个单元连接到单元DT836

Range("DT836").Precedents包含了70,000多个单元格范围(据我所知)无法区分一个依赖关系与先例有多远。

有没有办法使用VBA来辨别这个?

事实certificate,有一个范围的不同属性告诉你这个, DirectPrecidents

我以为这是先例的财产,而不是一个单独的财产。

亚历克,

谢谢你提出你自己的问题。 我把这些评论作为回答发表,而不是根据评论的长度发表评论

对于3Dfunction(横跨表格),Excel是相当不灵活的。 PrecedentsDirectPrecedents只能在本地工作表上工作

要处理表外先例和依赖项,您将需要使用NavigateArrows方法 ,这是通过审计工具栏跟踪先例和依赖项的VBA等价物。

比尔•曼维尔(Bill Manville)在一段时间内对这种方法做了大量的工作,下面是应用比尔方法的两个环节。 第一个提供比尔的function,第二个链接来自我,这篇文章看起来“倒退”,以testing如果一定数量最终链接回到一个特定的工作表

  • 比尔·曼维尔的FindPrecedents函数(写在vbaexpress)
  • 我的文章'使用recursionNavigateArrows方法分析所有本地和表外单元格依赖关系'Ee
Interesting Posts