VBA 数据排序代码似乎突然忽略了一些 Columns/Cells

VBA Code That Sorts Data Seems to Be Suddenly Ignoring Some Columns/Cells

我有一个 sheet,它在 A2:Q and U2:AC 列中有数据。这两个范围都有数百行数据。我有根据列 CV 对这些数据进行排序的代码。

每行包含一个标识号和有关公司的信息。但是,范围内的某些列似乎未排序,因此排序后,这些列值与它们最初对齐的 company/ID 数字不对齐。

如果第 5 行的 ID 为 10456,名称为 "tomato",开始日期为 January 10,则在排序时,将对具有名称和 ID 的列进行排序,而具有开始日期的列将被排序日期没有移动,所以它不再匹配正确的 ID 和名称。

这是我的代码:

With ActiveSheet.Sort
    Range("A2").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes
    .Apply
End With

With ActiveSheet.Sort
    Range("U2").Sort Key1:=Range("V2"), Order1:=xlAscending, Header:=xlYes
    .Apply
End With

我已将这段代码用于三个数据集,没有任何问题(所有列和数据都已正确排序),但现在 运行 遇到了这个问题。

您必须命名要排序的完整范围:

Private Sub SortMyRanges()
    Dim lastRow As Long
    With ActiveSheet
        lastRow = .UsedRange.Row + .UsedRange.Rows.Count - 1

        .Range("A2:Q" & lastRow).Sort _
            Key1:=.Range("C2"), _
            Order1:=xlAscending, _
            Header:=xlYes, _
            Orientation:=xlTopToBottom

        .Range("U2:AC" & lastRow).Sort _
            Key1:=.Range("V2"), _
            Order1:=xlAscending, _
            Header:=xlYes, _
             Orientation:=xlTopToBottom

    End With
End Sub