我在使用VBA脚本时遇到问题。该函数使用一些公式填充工作表。它在大多数情况下都运行得很好,但是当我在更大的数据集上运行它时……它崩溃的原因是:
运行时错误'1004':Range类的AutoFill方法失败
调试器指向最后一个AutoFill调用。当我查看工作表时,AutoFill调用似乎工作了大约3/4,但停止了。
With Sheets("OPENS")
' Fill OPENS formulas
.Range("B" & firstRowOPENS - 3) = "=DATE(YEAR($B$1), MONTH($B$1)+2, DAY($B$1))"
.Range("B" & firstRowOPENS - 3).NumberFormat = "[$-409]mmm-yy;@"
.Range("C" & firstRowOPENS - 3) = "=C1+2"
.Range("B" & firstRowOPENS - 1) = "=SUBTOTAL(109,B" & firstRowOPENS & ":B" & lastRowOPENS & ")"
.Range("B" & firstRowOPENS - 1).AutoFill .Range("B" & firstRowOPENS - 1 & ":" & lastColOPENS & firstRowOPENS - 1), xlFillValues
.Range("B" & firstRowOPENS) = "=SUM(C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS & ")"
.Range("C" & firstRowOPENS).FormulaArray = "=SUM( ('Combined Input'!R2C2:R" & lastRowCI & "C2=RC1) * ('Combined Input'!R2C45:R" & lastRowCI & "C45=R2C) * ('Combined Input'!R2C43:R" & lastRowCI & "C43 = R1C4) * INDEX('Combined Input'!R2C5:R" & lastRowCI & "C40, 0,R" & firstRowOPENS - 3 & "C3,1)) * R[-" & (lastRowOPENS - firstRowOPENS + 5) * 2 & "]C" & OPENS_PROB_COL
.Range("C" & firstRowOPENS).AutoFill .Range("C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS), xlFillValues
If lastRowOPENS > firstRowOPENS Then
.Range("B" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS).AutoFill .Range("B" & firstRowOPENS & ":" & lastColOPENS & lastRowOPENS), xlFillValues
End If
setBorders .Range("A" & firstRowOPENS - 2 & ":" & lastColOPENS & lastRowOPENS)
End With有什么建议吗?
编辑:
我发现了问题:http://support.microsoft.com/kb/166342
“在Excel 2003和早期版本的Excel中,单个工作表最多可以包含65,472个引用另一个工作表的数组公式。如果您想使用更多的公式,请将数据拆分为多个工作表,使单个工作表的引用少于65,472个。”
发布于 2010-06-19 05:36:28
http://support.microsoft.com/kb/166342
“在Excel 2003和早期版本的Excel中,单个工作表最多可以包含65,472个引用另一个工作表的数组公式。如果您想使用更多的公式,请将数据拆分为多个工作表,使单个工作表的引用少于65,472个。”
https://stackoverflow.com/questions/2276671
复制相似问题