导致#REF 错误的数组公式

Array Formula Resulting in #REF Error

我不太清楚为什么会这样,但我似乎无法在线找到解决方案。我只是试图将一些公式从一个 sheet 复制到另一个(公式将在目标 sheet 中 .FillDown),但我特别遇到一个公式的问题。我相信这是因为公式是一个数组,但即使我使用 .Range.FormulaArray 我也会收到相同的 #REF! 错误。这是传输它的公式和脚本:

(注意:公式中的引用对于目的地 sheet 而非起点 sheet 是准确的 - 公式在指定的 sheet 中维护,因为所有数据关闭工作簿以减小文件大小时删除目标 sheet)

预期公式

IF(LEFT(H2,1)="2","Platforms",INDEX('Units - Job Numbers'!$A:$A0,SMALL(IF('Units - Job Numbers'!$B:$CO0=I2,ROW('Units - Job Numbers'!$B:$CO0)-ROW('Units - Job Numbers'!$B)+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

当公式传输到目的地sheet时,'Units - Job Numbers'sheet中的所有引用都变为#REF!。奇怪的是,即使在执行宏之前公式是正确的,原始公式也会出现 #REF! 错误。有什么建议吗?

这是我对正在发生的事情的最佳猜测...您是否可能在到达复制公式的这行代码之前或之后删除 'Units - Job Numbers' sheet 中的单元格?如果是这样,它可能会使引用无效。检查您的代码以查找删除 'Units - Job Numbers' 中的单元格的位置。如果您要删除单元格,请立即在您的代码中设置一个断点并检查您的原始公式,然后您会看到引用转向#REF(在您的 Formulas 和您的 Raw WIP Data sheet如果是在copy之后)。