2009-09-18 12 views
1

J'essaie de remplir un tableau avec des entiers consécutifs en utilisant Excel et VBA pour passer à la fonction Sous-total. J'ai besoin d'un tableau de taille dynamique d'entiers consécutifs. Le fnction fonctionne quand j'utilise Array (1,2,3,4,5) par exemple, mais pas si j'essaie d'utiliser un tableau de taille dynamique.Remplir le tableau avec des entiers consécutifs

J'ai lu quelques articles à ce sujet mais aucun n'a vraiment fonctionné - quelqu'un d'autre a-t-il essayé cela?

Répondre

1

Je suppose que vous voulez dire la méthode de sous-total. Cela fonctionne pour moi, vous devrez le comparer à ce que vous faites.

Sub Macro1() 

    Dim aConsec() As Long 
    Dim i As Long 

    ReDim aConsec(1 To 2) 

    For i = 1 To 2 
     aConsec(i) = i 
    Next i 

    Selection.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=aConsec, _ 
     Replace:=True, PageBreaks:=False, SummaryBelowData:=True 

End Sub
+0

Bravo, a parfaitement fonctionné – Echilon

0

Dont utiliser les tableaux dynamiques ... Essayez d'utiliser un arraylist ou quelque chose comme ça

les redimensionnant si pleine est une opération très coûteuse

Si vous savez combien emelemts vous avez besoin, la taille de ce droit le début.

totalisant également des numéros consécutifs est possible sans l'utilisation d'un tableau du tout ...

0

Si vous voulez que la somme de la plage de N à M, puis utilisez cette formule:

(M * ((M + 1)/2)) - ((N - 1) * (N/2))

Questions connexes