Excel VBA:如何从单元格中的公式访问(引用)范围

我有一个单元格(如“Sheet-1”中的B2),其中包含以下公式:

='Sheet-2'!B2+'Sheet-3'!B3-'Sheet-4'!B4

现在我想要VBA代码,可以访问该单元格中input的公式中所包含的引用(即Sheet-1中的B2)中的引用,然后转到那些引用并在这些引用的单元格中进行更改。

有点扩展z的评论。

Range(<cell>).Precedents返回一个VBA范围,表示由<cell>引用的所有单元<cell>例如,如果单元格A1具有公式=B1+D1Range("A1").Precedents = Range("B1,D1")

为了进一步满足您的问题的要求,我们可以使用For Each循环遍历此范围内的单元格,如下例所示:

 Public Sub AmendPrecedents(fromCell As Range) Dim rngReferredTo As Range Dim cell As Range Set rngReferredTo = fromCell.Precedents For Each cell In rngReferredTo 'Do something with this cell, in this case we're just coloring the background red cell.Interior.Color = RGB(255, 0, 0) Next cell End Sub