【发布时间】: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 中使用。
请帮忙。
【问题讨论】: