J'utilise VBA dans Excel VBE, mais C# ou vb vont bien. Le concept doit être vrai dans toutes les langues.Quel est le moyen le plus rapide de parcourir un objet Excel Range à l'envers?
Répondre
Vous ne savez pas exactement ce que vous voulez dire. Vous voulez passer de bas en haut, plutôt que de haut en bas?
Cela devrait faire:
Dim myrange As Range
Set myrange = Range("B3:E10")
Dim row As Integer, col As Integer
For row = myrange.Rows.Count To 1 Step -1
For col = myrange.Columns.Count To 1 Step -1
Debug.Print myrange(row, col).Value
Next col
Next row
Bonne solution BradC. +1 – LeppyR64
Si vous travaillez avec des gammes de plus de quelques cellules et ne pas besoin de modifier les cellules, pensez toujours tirer les valeurs dans un tableau et travailler avec cette : l'interaction entre code et feuille de calcul est relativement (très) coûteuse. Si vous travaillez à partir d'un assemblage .NET, cela va double (peut-être triple, peut-être plus), car il y a plusieurs autres étapes impliquées dans un aller-retour.
Dans VBA, quelque chose comme ceci:
Dim vals As Variant
Dim row As Long, col As Long
vals = Range("A1:Z100") ' or whatever
For col = UBound(vals,2) To LBound(vals,2) Step -1
For row = UBound(vals) To LBound(vals) Step -1
DoSomethingInterestingWith vals(row, col)
Next
Next
Hey GollyJer, j'étais curieux de votre objectif pour cela. – LeppyR64
Ceci était pour l'insertion de plusieurs lignes entre une liste existante de données contiguës. – GollyJer