2013-03-08 124 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參數交換。奇怪的是,它已經奏效。