颠倒行的顺序

时间:2021-01-12 16:41:48

标签: excel vba

是否有一个简单的代码可以完全反转/镜像 Excel 电子表格中的行顺序? 这与使用 Sort 函数(例如,UsedRange.Sort Key1:=Range("A1"), Order1:=xlDescending)不同,因为 Sort 将为链接到相同日期的条目保持相同的出现顺序. 谢谢!

1 个答案:

答案 0 :(得分:1)

反转行

Option Explicit

Sub TESTreverseRows()
    reverseRows ThisWorkbook.Worksheets("Sheet1").UsedRange
End Sub

Sub reverseRows(ByRef rng As Range)
    If Not rng Is Nothing Then
        If rng.Rows.Count > 1 Then
            Dim Data As Variant: Data = rng.Value
            Dim r As Long: r = UBound(Data, 1)
            Dim c As Long: c = UBound(Data, 2)
            Dim Result As Variant: ReDim Result(1 To r, 1 To c)
            Dim i As Long
            Dim j As Long
            For i = 1 To r
                For j = 1 To c
                    Result(r, j) = Data(i, j)
                Next j
                r = r - 1
            Next i
            rng.Value = Result
        End If
    End If
End Sub