VBA 数据排序代码似乎突然忽略了一些 Columns/Cells
VBA Code That Sorts Data Seems to Be Suddenly Ignoring Some Columns/Cells
我有一个 sheet,它在 A2:Q and U2:AC
列中有数据。这两个范围都有数百行数据。我有根据列 C
和 V
对这些数据进行排序的代码。
每行包含一个标识号和有关公司的信息。但是,范围内的某些列似乎未排序,因此排序后,这些列值与它们最初对齐的 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
我有一个 sheet,它在 A2:Q and U2:AC
列中有数据。这两个范围都有数百行数据。我有根据列 C
和 V
对这些数据进行排序的代码。
每行包含一个标识号和有关公司的信息。但是,范围内的某些列似乎未排序,因此排序后,这些列值与它们最初对齐的 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