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