数组公式导致#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(然后在您的Formulas
和Raw WIP Data
表中,如果它位于副本之后) 。