向后走过Excel Range对象的最快方法是什么?

我在Excel VBE中使用VBA,但C#或VB是好的。 这个概念在各种语言中应该是真实的。

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

这应该做的:

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 

如果你正在处理超过几个单元格的范围而不需要修改单元格,那么总是考虑将这些值拉到一个数组中,并使用它:代码和工作表之间的交互相对(非常)昂贵。 如果你使用的是.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