【问题标题】:#REF error while importing a worksheet containing formulas + VBA - Excel Version 2013导入包含公式 + VBA 的工作表时出现 #REF 错误 - Excel 版本 2013
【发布时间】:2015-08-10 09:42:56
【问题描述】:

我有 2 个工作簿,“旧”和“新”。两者都是相同的(都具有相同的工作表集 - 工作表名称和所有 - 具有相同的公式)

我正在尝试将工作表 A 从“旧”导入到“新”。我这样做的方式是从“新”中删除工作表 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 中的单元格。

在导入时,我正在关闭“新”中存在的所有工作表的计算(toggleAutomaticCalculation false)。我在“导入”我的工作表后打开自动计算(toggleAutomaticCalculation true)。我正在使用以下 sub 来切换自动计算。

Public Sub toggleAutomaticCalculation(bToggle As Boolean)
Dim wks As Worksheet

    For Each wks In ThisWorkbook.Worksheets
        wks.EnableCalculation = bToggle
    Next wks
End Sub

完成“导入”后,我在“新”中的工作表 Z 中发现 #REF 错误,在那些具有引用工作表 A 的公式的单元格上,但现在导入的工作表 A 中的公式工作正常(即他们现在正在链接到新的工作表 B)

我的导入宏存在于“新”中,我正在运行它们。

我的问题如下:

  • 为什么在 Sheet Z 中发生 #REF 错误,而在 Sheet Z 中没有发生 工作表 A,虽然两个工作表都包含引用外部工作表的公式?

  • 有没有办法防止 Sheet Z 中出现 #REF 错误?

我目前唯一的选择是在导入后再次放回 Sheet Z 中的原始公式(使用单独的子)。

我正在使用 Excel 2013,我希望它可以在 Excel 2013 中使用。

请帮忙。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。选项#2 是我目前正在做的事情,但以我自己的方式略有不同(从我已经存储在“新”某处的相同公式的缓存中再次替换被冒犯的公式)。但我认为这是一个不理想的解决方案。恕我直言,理想的解决方案是让 excel 在导入时停止将 Sheet Z 中的那些公式更改为#REF。不幸的是,虽然在“导入”期间停止和恢复对“新”的自动计算适用于工作表 A,但它不适用于工作表 Z(正如我在问题中已经提到的那样)。
    • 我的推理是这样的:工作表 A 中引用工作表 B 中单元格的公式也应该成为#REF,因为在我将工作表 A 从“旧”复制到“新”之后,这些公式指的是“旧”表 B 中的单元格,这些公式现在与这些公式无关。但这并没有发生。但是,即使在导入期间停止自动计算,工作表 Z 中的公式(引用工作表 A 的公式)也会变成 #REF。这让我很困惑。
    • 我认为这是因为您在工作表 A 中的公式在所有点都有一个工作表 B 可供参考。工作表 Z 公式并不总是可以访问工作表 A。您是否在删除“旧”A 之前或之后关闭自动计算?如果之后,我建议您尝试在此之前进行
    • 我正在关闭自动计算。尽管如此,还是会发生此错误。
    • 但是你是在删除之前还是之后呢?如果在删除之前,恐怕除了我已经说过的之外我没有任何想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2018-11-03
    • 2013-03-18
    • 2018-04-20
    • 2014-11-01
    相关资源
    最近更新 更多