2017-04-26 3 views
1

Ich versuche, den Bereich der Spalte für die Sortierfunktion festzulegen.Bereich für Sortierfunktion einstellen

Allerdings beginnt der Bereich von einer bestimmten Zeile, die ich die Match-Funktion verwendet, um zu finden und endet wo immer die Zellen leer ist. Wie gehe ich damit um?

Es liegt auf der Linie:

Sheet3.Sort.SortFields.Add Key:=Range("G" & v & "G" & v.End(xlDown)), 
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal 

Vielen Dank für Ihre Hilfe im Voraus!

Sheet3.Sort.SortFields.Clear 
v = Application.Match("GND", Sheet3.Range("C:C"), 0) 
Sheet3.Range("A" & v & ":K" & v).Select 
Sheet3.Range(Selection, Selection.End(xlDown)).Select 
Sheet3.Sort.SortFields.Add Key:=Range("G" & v & "G" & v.End(xlDown)), 
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal 
Sheet3.Sort.Apply 

Antwort

1

Es gibt keine Notwendigkeit Select zu verwenden (es nur verlangsamt Ihren Code zur Laufzeit), unter dem Code versuchen:

Option Explicit 

Sub SortRange() 

Dim v As Variant 
Dim Rng As Range 

With Sheet3 
    .Sort.SortFields.Clear 
    v = Application.Match("GND", .Range("C:C"), 0) '<-- make sure Match is not returning an #ERROR 
    Set Rng = .Range(.Range("A" & v & ":K" & v), .Range("A" & v & ":K" & v).End(xlDown)) 

    Rng.Sort Key1:=.Range("G" & v), Order1:=xlDescending, DataOption1:=xlSortNormal 
End With 

End Sub 

enter image description here

+0

es jetzt vielen Dank für Ihre Hilfe funktioniert –