【发布时间】:2015-12-08 03:00:37
【问题描述】:
我不太确定为什么会发生这种情况,但我似乎无法在线确定解决方案。我只是试图将一些公式从一张表复制到另一张表(公式将在目标表中.FillDown),但我特别遇到了一个公式的问题。我相信这是因为公式是一个数组,但即使我使用.Range.FormulaArray,我也会收到相同的#REF! 错误。这是公式和传输它的脚本:
(注意:公式中的引用对于目标工作表是准确的,而不是原始工作表 - 公式保留在指定工作表中,因为在关闭工作簿以减小文件大小时,目标工作表上的所有数据都会被删除)
预期公式
IF(LEFT(H2,1)="2","Platforms",INDEX('Units - Job Numbers'!$A$2:$A$200,SMALL(IF('Units - Job Numbers'!$B$2:$CO$200=I2,ROW('Units - Job Numbers'!$B$2:$CO$200)-ROW('Units - Job Numbers'!$B$2)+1),1)))
转移后公式
=IF(LEFT(H2,1)="2","Platforms",INDEX('Units - Job Numbers'!#REF!,SMALL(IF('Units - Job Numbers'!#REF!=I2,ROW('Units - Job Numbers'!#REF!)-ROW('Units - Job Numbers'!#REF!)+1),1)))
VBA
'Copy and Extend Raw WIP Data Formulas
With ThisWorkbook.Worksheets("Raw WIP Data")
.Range("AE2:AL2").Formula = ThisWorkbook.Worksheets("Formulas").Range("A7:H7").Formula
.Range("AM2").Formula = ThisWorkbook.Worksheets("Formulas").Range("I7").Formula
.Range("AE2:AM" & WIPLastRow).FillDown
.Range("AE2:AM" & WIPLastRow).Copy
.Range("AE2:AM" & WIPLastRow).PasteSpecial xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Cells(1, 1).Select
End With
当公式转移到目标工作表时,'Units - Job Numbers' 工作表中的所有引用都变为#REF!。奇怪的是,即使公式在执行宏之前是正确的,原始公式也有 #REF! 错误。有什么建议吗?
【问题讨论】:
-
你能在这里发布你的代码吗?你在单元格中得到的公式是什么?
-
我不会包含我的整个脚本,因为它很长,除了这一行之外我没有任何问题。从原始表转移后,我将包含公式。
-
你有一张名为
Units - Job Numbers的工作表吗?
标签: arrays excel vba formula ref