如何在VBA中按排序顺序循环排序的Excel区域?

如何在VBA中按排序顺序循环排序的Excel区域?,excel,vba,sorting,filter,range,Excel,Vba,Sorting,Filter,Range,我正在使用VBA对Excel 2010中筛选的工作表进行排序。从视觉上看,排序是有效的,但当我在VBA中逐步遍历已排序、已过滤的范围时,该范围似乎仍保持其原始顺序。就我而言,这是不可取的 以下是我的循环代码摘录: For r = 2 To LastRow Set row = ws.Range(r & ":" & r) Debug.Print row.Row Next 使用autofilter mode=false清除过滤器,然后尝试排序。如果您在筛选范围内,是否

我正在使用VBA对Excel 2010中筛选的工作表进行排序。从视觉上看,排序是有效的,但当我在VBA中逐步遍历已排序、已过滤的范围时,该范围似乎仍保持其原始顺序。就我而言,这是不可取的

以下是我的循环代码摘录:

For r = 2 To LastRow
    Set row = ws.Range(r & ":" & r)
    Debug.Print row.Row
Next

使用autofilter mode=false清除过滤器,然后尝试排序。

如果您在筛选范围内,是否应该单步执行?此外,Jeeped的注释是:Excel仅对可见行进行排序。如果你想对所有内容进行排序,那么请删除所有过滤器,重新排序并应用过滤器。谢谢你-这很有效,吉佩德。你能不能把你的评论提高到一个答案,这样我就可以适当地相信它了?