2017-06-16 128 views
0

我嘗試對範圍進行排序(包含3列)我想對第二列的數據進行排序,如果在該列中有兩個相同的東西,我希望它對它進行排序通過第一列。對範圍進行排序Excel表示範圍爲空

第二和第一列中總是充滿

下面是我用的線,但我不斷收到錯誤:

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

Target.Sheets("SheetToSort").Range("A1:C" & m).Sort Key1:=Range("B1:B" & m), Order1:=xlAscending, key2:=Range("A1:A" & m), order2:=xlAscending

目標是定義的工作簿,工作表存在,單元格"A1:C" & m只包含數據列C可能有空的空格,但我沒有對該列上的任何內容進行排序。

感謝您的幫助!

回答

1

我只是確保所有的範圍是指在同一張紙上,所以修改它是這樣的:

Target.Sheets("SheetToSort").Range("A1:C" & m).Sort _ 
Key1:=Target.Sheets("SheetToSort").Range("B1:B" & m), Order1:=xlAscending, _ 
Key2:=Target.Sheets("SheetToSort").Range("A1:A" & m), Order2:=xlAscending 

我知道我在哪裏發生了這種情況以前也有問題,因爲Range對象,當您沒有指定工作表,可能會指向您認爲不同的工作表。

+1

因此,請閱讀[VBA最佳實踐:永不假定工作表](https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9218/never-assume-the-worksheet)。 –

+0

好像真的被解決了!謝謝 :) – KawaRu