2015-02-10 50 views
0

我的宏正在删除一些电子表格(我们称之为“Base”),并用类似,相同的名称和格式替换它,但使用不同的数据。其他工作表中有公式参考“基本”电子表格。这个公式在宏执行后返回#ADR!错误和公式改变,例如:取代公式的一部分

=SUM(Base!AA:AA) 

becames:

=SUM(#ADR!AA:AA) 

我要替换“#ADR”与“基地”每个公式中,摆脱这种错误的。一个apporaches这是我一直在努力的是:

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

,但它不能正常工作,即使当我试图做到这一点manualy,用Ctrl + H快捷键,一切都是完美的。

我该如何替换“#ADR!”在使用宏的每个选定公式中都带有“Base”?

回答

0

= SUM

间接通过一个字符串参数,所以当片被删除,你不会失去参考。

+0

谢谢,这解决了我的问题。 – Limak 2015-02-10 14:31:08

0

当您删除工作表时,您将删除该实体。虽然您然后创建一个具有相同名称的新工作表,但它不是同一个实体。

因此,当您删除工作表时,其他工作表中引用它的公式会丢失该参考。创建一个具有相同名称的新工作表将永远不会修复链接。

覆盖基本表中的数据会不会更简单,因此保留所有链接并完全消除问题? ( “!AA基地:AA” INDIRECT())