Question

Je vais avoir des problèmes avec un script VBA. La fonction remplit une feuille avec quelques formules. Il fonctionne très bien la plupart du temps, mais quand je le lance sur un ensemble de données plus ... il se bloque avec:

Erreur d'exécution '1004': La méthode AutoFill de classe Range a échoué

Les points de débogueur au dernier appel AutoFill. Quand je regarde la feuille, il semble que l'appel AutoFill a travaillé environ 3/4 du chemin, mais arrête.

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

Toutes les suggestions?

Edit:

J'ai trouvé le problème: http://support.microsoft.com/kb/166342

"Dans Excel 2003 et dans les versions antérieures d'Excel, une seule feuille peut contenir un maximum de 65472 formules de tableau qui font référence à une autre feuille de calcul. Si vous voulez utiliser plus de formules, diviser les données en plusieurs feuilles de calcul afin qu'il y ait moins que 65,472 références à une seule feuille de calcul. «

Était-ce utile?

La solution

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

"Dans Excel 2003 et dans les versions antérieures d'Excel, une seule feuille peut contenir un maximum de 65472 formules de tableau qui font référence à une autre feuille de calcul. Si vous voulez utiliser plus de formules, diviser les données en plusieurs feuilles de calcul afin qu'il y ait moins que 65,472 références à une seule feuille de calcul. «

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top