2008-12-22 64 views

回答

3

不确定你的意思。你想从底部到顶部,而不是从顶部到底部?

这应该这样做:

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 
1

如果你有超过几格的范围内工作,并不需要修改的细胞,始终考虑拉动值到一个数组中,并与工作:代码和工作表之间的交互相对(非常)昂贵。如果你使用的是.NET程序集,那么这个数字就会增加一倍(也许是三倍,也许会更多),因为在往返过程中还需要多个步骤。

在VBA中,这样的事情:

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 
相关问题