向后浏览Excel Range对象的最快方法是什么?

时间:2008-12-22 19:36:13

标签: excel vba excel-vba

我在Excel VBE中使用VBA,但是c#或vb很好。 这个概念应该适用于各种语言。

2 个答案:

答案 0 :(得分: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 :(得分: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