Vba 从第二行开始,按列的值对工作表进行排序
我想根据列(新-旧)的值(日期)从第二行到最后对工作表进行排序。Vba 从第二行开始,按列的值对工作表进行排序,vba,excel,sorting,runtime-error,excel-2007,Vba,Excel,Sorting,Runtime Error,Excel 2007,我想根据列(新-旧)的值(日期)从第二行到最后对工作表进行排序。 我写了代码,但总是有一个错误:1004,排序引用无效。有人知道解决方案吗? 谢谢。 工作簿(“Task2.xlsm”)。工作表(“数据”)。列(“A:CA”)。排序键1:=Range(“H2”),排序键1:=xl降序,标题:=xlYes是否要key1:=Range(“H:H”)? 我假设H列是您的键,而不是单个单元格H2。将列更改为列(我认为在发布代码时键入错误) 当工作表(“数据”)不是当前活动的工作表时,就会出现运行时错误。您
我写了代码,但总是有一个错误:1004,排序引用无效。有人知道解决方案吗?
谢谢。
工作簿(“Task2.xlsm”)。工作表(“数据”)。列(“A:CA”)。排序键1:=Range(“H2”),排序键1:=xl降序,标题:=xlYes
是否要key1:=Range(“H:H”)?
我假设H列是您的键,而不是单个单元格H2。将
列
更改为列
(我认为在发布代码时键入错误)
当工作表(“数据”)
不是当前活动的工作表时,就会出现运行时错误。您的最佳选择是完全避免此类错误,并始终使用合格的范围
请注意
范围(“H2”)
前面的
(点)使其明确引用with
子句中指定的表格。否则,您将使用一个不合格的范围,该范围指的是当前活动的工作表。我记录了一个宏,找到了答案(可以简化):
谢谢A.S.H.我也找到了答案。谢谢Sanjay!
With Workbooks("Task2.xlsm").Worksheets("Data")
.Column("A:CA").Sort key1:=.Range("H2"), order1:=xlDescending, Header:=xlYes
End with
^^^^
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