我正在尝试构建一个将输入以下内容的函数:
i)工作表
ii)分拣区
iii)排序列标题(此列中有日期)。
然后,代码将按升序对区域进行排序。
Function sortArea(Sheet As Worksheet, sortingArea As Range, sortingColHeader As Range) As Range
With Sheet.sort
.SortFields.Add Key:=Range(sortingColHeader), Order:=xlAscending
.SetRange Range(sortingArea)
.Header = xlYes
.Apply
End With
End Function
我写的时候,在我的主要子目录中:
Call sortArea(Sheets(2), Range("A16:AP45"), Range("I14"))
我得到:
“对象全局的运行时错误1004方法范围失败”
With块内的第一行:
.SortFields.Add Key:=Range(sortingColHeader), Order:=xlAscending
答案 0 :(得分:0)
检查差异:
Option Explicit
Sub sortArea(ws As Worksheet, sortingArea As Range, sortingColHeader As Range)
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=sortingColHeader, Order:=xlDescending
.SetRange sortingArea
.Header = xlYes
.Apply
End With
End Sub
Sub tester()
Call sortArea(Sheets(2), Range("b1:c10"), Range("b1:b10"))
End Sub
Range(Range)
语法没有意义。 忽略order
参数中仅用于测试的更改
请注意.SortFields.Clear
,否则每次运行宏时,您只需不断添加SortFields
出于文档考虑,请考虑将sortingColHeader
更改为sortingColRange