Excel VBE'de VBA kullanıyorum, ancak C# veya vb. Kavram, diller arasında doğru olmalıdır.Excel Range nesnesini geriye doğru yürümenin en hızlı yolu nedir?
5
A
cevap
3
Ne demek istediğinizden emin değilsiniz. Yukarıdan aşağıya doğru, aşağıdan yukarıya doğru gitmek mi istiyorsunuz?
Bu yapmalıdır:
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
+0
İyi bir çözüm BradC. +1 – LeppyR64
1
fazla birkaç hücre aralıkları ile çalışıyoruz ve her zaman, hücreleri değiştirmek bir diziye değerleri çekerek ve bu çalışmayı dikkate almak gerekmiyorsa : Kod ve çalışma sayfası arasındaki etkileşim nispeten (çok) pahalıdır. Bir .NET derlemesinden çalışıyorsanız, bu çift gidiş (belki üçlü, belki daha fazla) çünkü bir gidiş dönüşte birkaç adım daha vardır. VBA
, böyle bir şey:
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
GollyJer Hey, bu amacınızı sadece merak oldu. – LeppyR64
Bu, varolan bitişik veri listesi arasında birden fazla satır eklemek içindi. – GollyJer