【发布时间】:2014-11-26 06:30:21
【问题描述】:
当我在多张工作表上运行此代码时,我收到“运行时错误 1004:排序引用无效。确保它在您要排序的数据内,并且第一个排序依据框不在相同或空白”:
Dim i As Long
For i = 6 To Worksheets.Count
'more code here
Dim ranged As range
Dim lRow As Long
With ThisWorkbook.Sheets(i)
lRow = .range("AJ" & .Rows.Count).End(xlUp).Row
Set ranged = .range("AJ2:AJ" & lRow)
.Sort.SortFields.Add Key:=ranged, _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
With .Sort
.SetRange ranged
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
'more code here
next i
我不确定为什么这不起作用,但特别令人困惑的是,当我尝试仅通过将 With ThisWorkbook.Sheets(i) 更改为 With ThisWorkbook.Sheets("Sheetname" (在不同的工作表中是不同的。有什么想法吗?
【问题讨论】:
-
先尝试清除排序字段。