2010-02-16 5 views
1

Je rencontre des problèmes avec un script VBA. La fonction remplit une feuille avec certaines 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:Problème Excel AutoFill

Erreur d'exécution « 1004 »: La méthode AutoFill de classe Range n'a pas

Les points de débogueur jusqu'au dernier appel AutoFill. Quand je regarde la feuille, il semble que l'appel AutoFill a travaillé sur les 3/4 du chemin mais s'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 

Une suggestion?

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 veulent utiliser plus de formules, diviser les données en plusieurs feuilles de calcul afin qu'il y ait moins de 65,472 références à une seule feuille. «

+0

Il semble être coincé à la ligne 1500 sur ma feuille.Même lorsque j'essaie de remplir manuellement ... il ne fonctionne pas – lucks

+0

d'où vient le dernierColOPENS? – guitarthrower

+0

il est calculé avant ce bloc. pour avoir quelque chose à voir avec la définition de FormulaArray – lucks

Répondre

0

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

» Dans Excel 2003 et Dans les versions antérieures d'Excel, une seule feuille de calcul peut contenir un maximum de 65 472 formules matricielles qui se réfèrent à une autre feuille de calcul. Si vous souhaitez utiliser plus de formules, divisez les données en plusieurs feuilles de calcul afin qu'il y ait moins de 65 472 références à une seule feuille de calcul. "

Questions connexes