2016-07-19 5 views
0

Ich versuche, Daten durch die Werte in der dritten Spalte zu sortieren. Ich habe eine 2-zeilige Kopfzeile, und der Code selbst als ein Modul funktioniert perfekt. Wenn ich den Code in ein anderes Modul kopiere und einfüge, erhalte ich den Fehler '1004: Die Sortierreferenz ist nicht gültig. Stellen Sie sicher, dass es sich innerhalb der Daten befindet, die Sie sortieren möchten, und das erste Feld Sortieren nach ist nicht identisch oder leer.VBA Sortierfehler. Code funktioniert nur als separates Modul

Warum funktioniert der Code nur von selbst?

Code:

Sub sort() 
Dim myRange As Range 
Dim i As Long 
i = 200 
Set myRange = Sheets("Final").Range("A2", "S" & i) 
myRange.sort Key1:=Range("C2"), order1:=xlAscending, _ 
       Header:=xlYes, Orientation:=xlSortColumns 
End Sub 
+2

Sie sind nicht vollständig Ihre Referenzen qualifiziert. Probiere 'Workbooks (" yourworkbookname "). Blätter (" Final "). Range (" A2 "," S "& i)' und 'Key1: = Arbeitsmappen (" yourworkbookname "). Sheets (" Final "). "C2") – Toast

Antwort

0

Ihr Range Argument für Key1 ist nicht vollständig qualifiziert. Ein nicht qualifizierter Bereich bezieht sich immer auf das Arbeitsblatt Active, und wenn das aktive Blatt nicht dasselbe ist wie Sheets("Final"), dann wird der Fehler erwartet!

Dies sollte es beheben:

Sub sort() 

    Dim myRange As Range 
    Dim i As Long 
    i = 200 
    With Sheets("Final") 
     Set myRange = .Range("A2", "S" & i) 
     myRange.sort Key1:=.Range("C2"), order1:=xlAscending, _ 
        Header:=xlYes, Orientation:=xlSortColumns 
    End With 

End Sub