数组公式导致#REF错误

我不太清楚为什么会出现这种情况,但似乎无法在网上find解决scheme。 我只是试图复制一些公式从一个表到另一个(公式将在目标工作表.FillDown ),但我特别是有一个公式的问题。 我相信这是因为公式是一个数组,但即使当我使用.Range.FormulaArray我收到相同的#REF! 错误。 这里是公式和转移它的脚本:

(注意:公式中的引用对于目标工作表而不是原始工作表是准确的 – 公式将保留在指定的工作表中,因为在closures工作簿以减小文件大小时目标工作表上的所有数据都将被删除)

拟定公式

 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 

当公式转移到目标工作表时, “单位 – 工作号”表中的所有参考变为#REF! 。 奇怪的是,原来的公式有#REF! 即使公式在执行macros之前是错误的。 有什么build议么?

这是我最好的猜测,到底发生了什么……你是否可能在你到达这个复制公式的代码行之前或之后删除'Units - Job Numbers'表单中的'Units - Job Numbers'格? 如果是这样,它可以使参考无效。 检查你的代码,删除'Units - Job Numbers''Units - Job Numbers'格。 如果您要删除单元格,请在代码中立即设置一个断点,然后检查原始公式,然后您将看到引用变为#REF(然后在您的FormulasRaw WIP Data表中,如果它位于副本之后) 。