导入包含公式+ VBA的工作表时出现#REF错误 - Excel Version 2013

时间:2015-08-10 09:42:56

标签: vba excel-vba excel

我有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中使用。

请帮助。

1 个答案:

答案 0 :(得分:0)

我认为当您删除原始工作表A时,在工作表Z中会出现#REF错误,而不是在复制新工作表时。这就是为什么Sheet Z得到#REF错误但是Sheet A没有。

之前我遇到过这个问题并找到了两个可能的解决方案。第一种是复制旧版本的范围(可能是使用过的范围)。 A并将其粘贴到新的'答:这应该避免所有#REF错误。我找到的第二个选项是使用符号(如|)查找和替换Sheet Z中的all =在复制工作表A之前,然后将其更改回来。这实际上是重新输入公式,但更容易

在更多地考虑了这个问题之后,我建议您在删除“旧”之前可能需要关闭自动更新功能。 A(如果这不是你已经在做的事情)