我有2本工作簿,旧版' &安培; '新&#39 ;.两者都是相同的(两者都有相同的工作表集 - 工作表名称和所有 - 具有相同的公式)
我试图从旧版'中导入工作表A.到了新的'。我这样做的方法是从' new'中删除工作表A.然后复制整个工作表(即“旧的'”的表A)从旧的'到了'新'
wkbOld.worksheets("Sheet A").Copy After:=wkbNew.Worksheets(nPos)
'nPos is the position of Sheet A in these workbooks
工作表A具有引用工作表B中的单元格的公式。我还有一个工作表Z,其中包含引用工作表A中的单元格的公式。
导入时我关闭计算所有工作表中的' new' (toggleAutomaticCalculation false)。在我导入'进口后,我开启了自动计算功能。我的表格(toggleAutomaticCalculation true)。我使用以下子来切换自动计算。
Public Sub toggleAutomaticCalculation(bToggle As Boolean)
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
wks.EnableCalculation = bToggle
Next wks
End Sub
在我完成“导入”之后,我在“新'”中找到了#ZF错误,在那些公式中引用了表A的单元格中,但是现在导入的工作表A中的公式工作正常(即它们现在以新的方式链接到工作表B)
我导入的宏位于' new'中,我正在运行它们。
我的问题如下:
为什么在工作表Z中发生#REF错误而它没有发生 表A,虽然两张表都包含引用外部表格的公式?
有没有办法防止Sheet Z中出现#REF错误?
我目前唯一的选择是再次将原始公式放回到工作表Z(使用单独的子)导入后。
我使用的是Excel 2013,我希望这可以在Excel 2013中使用。
请帮助。
答案 0 :(得分:0)
我认为当您删除原始工作表A时,在工作表Z中会出现#REF错误,而不是在复制新工作表时。这就是为什么Sheet Z得到#REF错误但是Sheet A没有。
之前我遇到过这个问题并找到了两个可能的解决方案。第一种是复制旧版本的范围(可能是使用过的范围)。 A并将其粘贴到新的'答:这应该避免所有#REF错误。我找到的第二个选项是使用符号(如|)查找和替换Sheet Z中的all =在复制工作表A之前,然后将其更改回来。这实际上是重新输入公式,但更容易
在更多地考虑了这个问题之后,我建议您在删除“旧”之前可能需要关闭自动更新功能。 A(如果这不是你已经在做的事情)