Excel 排序数据的VBA代码似乎突然忽略了某些列/单元格

Excel 排序数据的VBA代码似乎突然忽略了某些列/单元格,excel,vba,excel-2016,Excel,Vba,Excel 2016,我有一张表,其中包含列A2:Q和U2:AC中的数据。这两个范围都有数百行数据。我有一个代码,它根据C和V列对这些数据进行排序 每行包含一个标识号和有关公司的信息。但是,范围内的某些列似乎没有被排序,因此排序后,这些列的值与它们最初对齐的公司/ID号不对齐 例如,如果第5行的ID为10456,名称为“番茄”,开始日期为1月10日,则在排序时,具有名称和ID的列将被排序,而具有开始日期的列不会移动,因此它不再匹配正确的ID和名称 这是我的密码: With ActiveSheet.Sort R

我有一张表,其中包含列
A2:Q和U2:AC
中的数据。这两个范围都有数百行数据。我有一个代码,它根据
C
V
列对这些数据进行排序

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

例如,如果第5行的ID为
10456
,名称为
“番茄”
,开始日期为
1月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

我无法用你提供的信息再现你的问题。我建议您阅读帮助页面以获取有关和的信息,然后编辑您的问题以提供信息,以便其他人能够更好地帮助您。