当前位置:  开发笔记 > 后端 > 正文

Excel:INDIRECT公式所针对的列表范围

如何解决《Excel:INDIRECT公式所针对的列表范围》经验,为你挑选了1个好方法。

我们有一些非常大的Excel工作簿(几十个选项卡,每个MB,非常复杂的计算),有许多,可能有数百个使用可怕的INDIRECT函数的公式.这些公式分布在整个工作簿中,并针对几个数据表来查找值.

现在,我需要将这些公式所针对的数据范围移动到同一工作簿中的不同位置.

(原因是不是特别相关,但对自己有意思.我们需要运行Excel计算服务这些事情,延迟打装载每个相当大表之一的证明是不可接受的时间的.我们正在移动表格在一个连续的范围内,所以我们可以一次性加载它们.)

有没有办法找到目前引用我们想要移动的表的所有INDIRECT公式?

我不需要在线执行此操作.只要它可靠,我会高兴地拿走需要4个小时的东西.

请注意..Precedent,.Dependent等方法仅跟踪直接公式.

(另外,在重写电子表格无论是不是我们的选择).

谢谢!



1> sdfx..:

您可以使用vba迭代整个工作簿(我已经包含了来自@PabloG和@ euro-micelli的代码):

Sub iterateOverWorkbook()
For Each i In ThisWorkbook.Worksheets
    Set rRng = i.UsedRange
    For Each j In rRng
        If (Not IsEmpty(j)) Then
            If (j.HasFormula) Then
                If InStr(oCell.Formula, "INDIRECT") Then
                    j.Value = Replace(j.Formula, "INDIRECT(D4)", "INDIRECT(C4)")
                End If
            End If
        End If
    Next j
Next i
End Sub

这个例子用"间接(C4)"代替每次出现的"间接(D4)".如果您有更复杂的间接功能,您可以轻松地将替换功能与更复杂的功能交换.性能并不差,即使对于更大的工作簿也是如此.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有