2013-03-08 60 views
9

我想在一个单独的工作表内排序一个范围。 不过,我不断收到这样的信息:'1004':“排序参考无效。”

'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 

感谢

回答

18

我怀疑你需要完全限定的Key1范围,因为你是从不同的表调用代码:

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

这通常是一个好主意。

+0

谢谢,这很好! – 2013-03-08 16:51:36

+1

哇!你如何看待这些事情? Excel文档绝对没有任何有用的信息。 – DavidHyogo 2014-08-15 15:02:15

+1

@DavidHyogo,试错。它的几年:-)。 – 2014-08-15 19:52:38

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参数的关键和秩序则params的中间局促:

表达的.sort(密钥1,Order1,密钥2,类型,Order2,键3,Order3 ,头,OrderCustom,MatchCase,方向,SortMethod,DataOption1,DataOption2,DataOption3)

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