替换部分公式

Replace part of formula

我的宏正在删除一些电子表格(我们称它为 "Base")并用相似的、相同的名称和格式但不同的数据替换它。其他工作表中的公式引用了 "Base" 电子表格。此公式在执行宏后,return #ADR!错误,公式被更改,例如:

=SUM(Base!AA:AA)

变成:

=SUM(#ADR!AA:AA)

我想在每个公式中用 "Base" 替换“#ADR”,以消除此错误。我一直在尝试的方法之一是:

Selection.Replace What:="#ADR", Replacement:="Base", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

但它不起作用,即使当我尝试手动执行它时,使用 Ctrl+h 快捷键,一切都很完美。

如何替换“#ADR!” "Base" 在使用宏的每个选定公式中?

当您删除 sheet 时,您会删除该实体。尽管您随后创建了一个具有相同名称的新 sheet,但它不是同一个实体。

因此,当您删除 sheet 时,其他 sheet 中引用它的公式将丢失该引用。创建同名的新 sheet 永远不会修复链接。

覆盖 Base sheet 中的数据会不会更简单,从而保留所有链接并完全消除问题?

=SUM(间接("Base!AA:AA"))

INDIRECT 采用字符串参数,因此在删除 sheet 时不会丢失引用。