2013-03-08 8 views
9

Próbuję posortować zakres w osobnym arkuszu. Jednak wciąż otrzymuję komunikat:'1004': "Odniesienie do sortowania jest nieprawidłowe."

'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. 

mam zaznaczone zakresy i wszystkie one istnieją i działają.

Kod jest poniżej:

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 

góry dzięki

Odpowiedz

18

Podejrzewam, trzeba w pełni zakwalifikować zakres Key1, ponieważ dzwonisz kod z innego arkusza:

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

To na ogół dobry pomysł.

+0

Dzięki, że działa świetnie! –

+1

Wow! W jaki sposób geniusze odkrywają te rzeczy? Dokumenty Excel są całkowicie pozbawione przydatnych informacji. – DavidHyogo

+1

@DavidHyogo, wersja próbna i błąd. Lata tego :-). –

0

Próbowałem użyć metody Sort, ale z Powershell. I mam tylko część The sort reference is not valid bez części Make sure it's within the data you want to sort, and the first Sort By box isn't the same or blank. Oto jak się tu dostałem.

Mój problem spowodowany był zignorowaniem argumentu wywołania Sort. Jeśli przyjrzeć się bliżej dokumentacji można zobaczyć tam jest parametrem Type schowany w środku głównych i porządkowych params:

ekspresji .Sort (Key1, zamówienie1, Key2, typ, Order2, Key3, Order3 , Header, OrderCustom, MatchCase, Orientacja, SortMethod, DataOption1, DataOption2, DataOption3)

i minęło $null dla tego jednego i moja metoda połączenia rozpoczął pracę. Następną dziwną rzeczą było to, że z jakiegoś powodu został zignorowany numer Key2/Order2. Używam wszystkich 3 kluczy do sortowania moich danych. Poprawka polegała na zamianie Key2/Order2 z argumentami Key3/Order3 w wywołaniu metody. O dziwo, zadziałało.

Powiązane problemy