'1004':“排序参考无效。”

时间:2013-03-08 14:34:23

标签: excel vba

我正在尝试在单独的工作表中对范围进行排序。 但是,我一直收到这条消息:

 '1004': "The sort reference is not valid. Make sure it's within the data you want to sort, and the first Sort By box isn't the same or blank. 

我检查了范围,它们都存在且正在工作。

代码如下:

Dim EmpBRange As String

EmpBRange = Sheets("EmployeeData").Cells(Cells.Rows.Count, "B").End(xlUp).Row

Worksheets("EmployeeData").Range("K3:K" & EmpBRange).Sort Key1:=Range("K3:K" & EmpBRange), Order1:=xlAscending, Header:=xlGuess, _
       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
       DataOption1:=xlSortNormal

提前致谢

2 个答案:

答案 0 :(得分:22)

我怀疑您需要完全限定Key1范围,因为您从另一张表中调用代码:

Worksheets("EmployeeData").Range("K3:K" & EmpBRange).Sort Key1:=Worksheets("EmployeeData").Range("K3:K" & EmpBRange)

这通常是一个好主意。

答案 1 :(得分:0)

我一直在尝试使用Sort方法,但是来自Powershell。我只有The sort reference is not valid部分没有Make sure it's within the data you want to sort, and the first Sort By box isn't the same or blank部分。这就是我到达这里的方式。

我的问题是由于忽视了Sort电话的争论。如果您仔细观察文档,您会看到密钥中间有一个Type参数,并且订购了参数:

  

表达式.Sort(Key1,Order1,Key2,Type,Order2,Key3,Order3,Header,OrderCustom,MatchCase,Orientation,SortMethod,DataOption1,DataOption2,DataOption3)

我已经通过了$null,我的方法调用开始工作了。接下来奇怪的是,由于某种原因Key2 / Order2被忽视了。我使用所有3个键来排序我的数据。解决方法是在方法调用中将Key2 / Order2Key3 / Order3参数交换。奇怪的是,它起作用了。