这是我的代码
Sub SortMultipleColumns(myline As String)
With Worksheets("Result-Inactive").Sort
.SortFields.Add Key:=Range("A1"), Order:=xlAscending
.SortFields.Add Key:=Range("D1"), Order:=xlAscending
.SortFields.Add Key:=Range("J1"), Order:=xlAscending
.SetRange Range("A1:C" & myline)
.Header = xlYes
.Apply
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,我也没明白,为什么“运行时错误'1004'排序引用无效。请确保它在您要排序的日期内,然后首先按框排序不相同或为空白。我点击调试,.apply被高亮显示
有什么建议么?
只是在这里重申吉普车的答案,但略有不同:
1)myline实际上应该定义为Long或Integer
2)声明的范围Key:=Range("A1")应定义为同一工作表
3)同样,的D和J之外的键也.setRange应定义为在同一工作表上
我坚持使用相同的代码,但将ws工作表定义添加到所有范围,并更改了设置范围以包括最多列J
Sub SortMultipleColumns(myline As Long)
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Result-Inactive")
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=ws.Range("A1"), Order:=xlAscending
.SortFields.Add Key:=ws.Range("D1"), Order:=xlAscending
.SortFields.Add Key:=ws.Range("J1"), Order:=xlAscending
.SetRange ws.Range("A1:J" & myline)
.Header = xlYes
.Apply
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
我假设myline存在,因为有时您只想对一系列数据的最顶层进行排序。我还向clear所有排序字段添加了一行,以防万一您在此工作表上运行许多不同的排序器。
| 归档时间: |
|
| 查看次数: |
11055 次 |
| 最近记录: |