从第二行开始按列的值对 sheet 进行排序
Sort a sheet by the value of a column since the second line
我想根据从第二行到最后一列(新旧)的值(日期)对 sheet 进行排序。
我写了代码,但总是出现错误:1004,排序参考无效。有人碰巧知道解决方案吗?
谢谢。
Workbooks("Task2.xlsm").Worksheets("Data").Column("A:CA").Sort key1:=Range("H2"), order1:=xlDescending, Header:=xlYes
你要吗key1:=Range("H:H")?
我假设 H 列是您的键,而不是单个单元格 H2。
将 Column
更改为 Columns
(我认为在发布代码时出现错别字)
那么只要 Worksheets("Data")
不是当前活动的工作 sheet,您就会遇到运行时错误。最好的办法是完全避免此类错误,始终 使用限定范围
With Workbooks("Task2.xlsm").Worksheets("Data")
.Column("A:CA").Sort key1:=.Range("H2"), order1:=xlDescending, Header:=xlYes
End with
^^^^
注意 Range("H2")
前面的 .
(点),这使得它 明确地 指向 sheet 中指定的 sheet 16=] 子句。否则,您将使用 不合格范围 whcih 指的是当前活动的 sheet.
我录制了一个宏,我找到了答案(可以简化):
Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort.SortFields.Clear
Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort.SortFields.Add Key:=Range("H1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortTextAsNumbers
With Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
我想根据从第二行到最后一列(新旧)的值(日期)对 sheet 进行排序。
我写了代码,但总是出现错误:1004,排序参考无效。有人碰巧知道解决方案吗?
谢谢。
Workbooks("Task2.xlsm").Worksheets("Data").Column("A:CA").Sort key1:=Range("H2"), order1:=xlDescending, Header:=xlYes
你要吗key1:=Range("H:H")?
我假设 H 列是您的键,而不是单个单元格 H2。
将 Column
更改为 Columns
(我认为在发布代码时出现错别字)
那么只要 Worksheets("Data")
不是当前活动的工作 sheet,您就会遇到运行时错误。最好的办法是完全避免此类错误,始终 使用限定范围
With Workbooks("Task2.xlsm").Worksheets("Data")
.Column("A:CA").Sort key1:=.Range("H2"), order1:=xlDescending, Header:=xlYes
End with
^^^^
注意 Range("H2")
前面的 .
(点),这使得它 明确地 指向 sheet 中指定的 sheet 16=] 子句。否则,您将使用 不合格范围 whcih 指的是当前活动的 sheet.
我录制了一个宏,我找到了答案(可以简化):
Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort.SortFields.Clear
Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort.SortFields.Add Key:=Range("H1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortTextAsNumbers
With Workbooks("Task2.xlsm").Worksheets("Data").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With