1

我在使用 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 个引用到一个工作表。”

4

1 回答 1

0

http://support.microsoft.com/kb/166342

“在 Excel 2003 和更早版本的 Excel 中,单个工作表最多可以包含 65,472 个引用另一个工作表的数组公式。如果要使用更多公式,请将数据拆分为多个工作表,以便少于 65,472 个引用到一个工作表。”

于 2010-06-18T21:36:28.063 回答