2014-12-19 7 views
8

ich als nächstes Userform in vba entwickelt, die Informationen zum Anzeigen von Informationen aus einem Arbeitsblatt nimmtSorting Arbeitsblatt Daten durch -Spaltenwerten mit Excel VBA

enter image description here

Ich möchte aphabetically von einem Segment alle Informationen, um zu bestellen, dies ist der Code:

Function llenarDatosTabla() 

    Dim vList As Variant 
    Dim ws As Worksheet: Set ws = Worksheets(BD_PRODXSIST) 

    ListBox1.Clear 

    With ws 
     If (IsEmpty(.Range("AA2").Value) = False) Then 

      Dim ultimoRenglon As Long: ultimoRenglon = devolverUltimoRenglonDeColumna("A1", BD_PRODXSIST) 

      vList = ws.Range("AA2:AA" & ultimoRenglon & ":AL2").Value 

      If IsArray(vList) Then 
       Me.ListBox1.List = vList 
      Else 
       Me.ListBox1.AddItem (vList) 
      End If 

     End If 

     Me.ListBox1.ListIndex = -1 

    End With 




    Set vList = Nothing 
    Set ws = Nothing 
End Function 

, wie es durch 'AD' (SEGMENTO) Spalte bestellt machen ???

Columns("A:XFD").Sort key1:=Range("AD:AD"), order1:=xlAscending, Header:=xlYes 

Hinweis: in der Spalte Bereich Columns("A:XFD") statt XFD geben Sie die zuletzt verwendete Spalte relevant für Ihren Fall, zum Beispiel

Antwort

9

Sie können Ihre Excel-Arbeitsblatt in aufsteigender Reihenfolge mit VBA-Anweisung wie folgt sortieren Columns("A:DD").

Hoffe, das wird helfen.

+0

es hat funktioniert !!! danke – Jesus

+0

Gern geschehen! Viel Glück mit Ihrem Projekt! Mit freundlichen Grüßen, –

+0

Hey manchmal bekomme ich diesen Fehler: 1004 in der Ausführungszeit Sortierreferenz nicht gültig – Jesus

5

Um eine Datentabelle zu sortieren, verwenden Excel Namen in Verbindung mit der Current Funktion. Dies ist weniger riskant als die Codierung von Spaltenreferenzen und kann in zwei einfachen Schritten durchgeführt werden.

Der Grund, warum Spalten vorzuziehen ist, ist, dass wenn Sie die Spalten falsch oder später ändern, Sie Ihre Daten verschlüsseln! Wenn Sie die Sortierung durchführen, bleiben die Zellen in einer oder mehreren weggelassenen Spalten erhalten und werden Teil der falschen Zeilen. Und genau das passiert, wenn Sie später weitere Spalten hinzufügen, außer Sie erinnern sich, Ihre VBA zu aktualisieren.

Hier sind die zwei einfachen Schritte zur Verwendung dieses Ansatzes. In diesem Beispiel habe ich eine Datentabelle mit vier Spalten und vier Reihen gewählt:

enter image description here

Wir von COL3 absteigend sortiert werden. Die Zellen in den anderen drei Spalten haben identische Werte, sodass wir leicht überprüfen können, ob alle Zellen in den richtigen Zeilen stehen.

Schritt 1: Wählen Sie eine Zelle in der Datentabelle aus, die wahrscheinlich nie entfernt wird, z. B. den Header einer Spalte, die dauerhaft erstellt werden soll, und definieren Sie einen Namen für diese Zelle. Sie können den Namen definieren, indem Sie die Zelle auswählen und direkt in das Dropdown-Menü "Name" von Excel oberhalb des Arbeitsblatts eingeben. Hier habe ich den Namen RegionTag verwendet:

enter image description here

Sogleich, Current kann die gesamte Datentabelle verweisen nur von diesem. Sie können es in Aktion sehen, wenn Sie eine Reihe von VBA-Code die Tabelle auszuwählen:

Range("RegionTag").CurrentRegion.Select 

Dies ist das Ergebnis:

enter image description here

Das ist nur zur Veranschaulichung ist, die Kraft des Namens zeigt/CurrentRegion-Kombination. Wir müssen die Tabelle nicht auswählen, um sie zu sortieren.

Schritt 2: definieren einen zweiten Namen, diesmal für die Spalte, die Sie sortieren möchten:

enter image description here

Stellen Sie sicher, der Name bezieht sich auf die gesamte Spalte, indem Sie auf die Spaltenüberschrift ausgewählt , anstatt nur eine Reihe von Zellen in der Spalte.

Das war's! Mit diesen beiden Namen definiert, können wir die Datentabelle sortieren, ohne sie über mit ihren Zeilen und Spalten, auch wenn mehr werden später hinzugefügt:

Range("RegionTag").CurrentRegion.Sort _ 
    key1:=Range("SortCol"), order1:=xlDescending, Header:=xlYes 

Hier ist unsere Datentabelle mit der obigen Aussage sortierte:

enter image description here

Verwandte Themen