2008-12-22 25 views

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