Frage

Ich habe Probleme mit einem VBA-Skript haben. Die Funktion füllt ein Blatt mit einigen Formeln. Es funktioniert gut, die meiste Zeit, aber wenn ich es auf einen größeren Datensatz laufen ... stürzt mit:

Laufzeitfehler '1004': AutoFill-Methode der Range-Klasse ist fehlgeschlagen

Der Debugger zeigt auf den letzten Aufruf AutoFill. Wenn ich auf dem Blatt sehen, so scheint es, dass der Anruf AutoFill etwa 3/4 der Art und Weise gearbeitet, aber stoppt.

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

Irgendwelche Vorschläge?

Edit:

fand ich das Problem: http://support.microsoft.com/kb/166342

"In Excel 2003 und in früheren Versionen von Excel, ein einzelnes Arbeitsblatt maximal 65.472 Matrixformeln enthalten, die auf ein anderes Arbeitsblatt verweisen. Wenn Sie mehr Formeln verwenden, teilen Sie die Daten in mehreren Arbeitsblättern, so dass es weniger sind als 65.472 Verweise auf ein Arbeitsblatt. „

War es hilfreich?

Lösung

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

"In Excel 2003 und in früheren Versionen von Excel, ein einzelnes Arbeitsblatt maximal 65.472 Matrixformeln enthalten, die auf ein anderes Arbeitsblatt verweisen. Wenn Sie mehr Formeln verwenden, teilen Sie die Daten in mehreren Arbeitsblättern, so dass es weniger sind als 65.472 Verweise auf ein Arbeitsblatt. „

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top