excel spalte alphabetisch sortieren

  • Sonstige

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von roddy.

    excel spalte alphabetisch sortieren

    hallo,

    ich möchte über VB die C spalte in excel aufsteigend sortieren. mit einem VBA makro hab ich das hinbekommen (siehe grüner code) ich möchte aber jetzt an der stelle einen VB code haben.

    wie mach ich das am geschicktesten?

    Visual Basic-Quellcode

    1. Private Sub btnPlanIds_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlanIds.Click
    2. Dim xliApp = CreateObject("EXCEL.APPLICATION")
    3. Dim xliWB = xliApp.Workbooks.Open(pfad_i)
    4. 'Cells.Select
    5. 'Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:= _
    6. 'xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    7. 'DataOption1:=xlSortNormal
    8. xliWB.Close()
    9. xliWB = Nothing
    10. xliApp = Nothing
    11. End Sub
    Weise noch die gewünschte Tabelle innerhalb der Arbeitsmappe einer Variablen zu (ich nenne sie hier mal "xliWS") und setzte vor "Cells" und vor "Range("C1")" "xliWS.". Du kannst auch "Cells.Select" weglassen und direkt "xliWS.Cells.Sort" schreiben.

    Noch ein Tipp: Es ist besser wenn man beim Deklarieren der Variablen den Typ mit angibt:

    Visual Basic-Quellcode

    1. Dim xliApp As New Excel.Application
    2. Dim xliWB As Excel.Workbook = xliApp.Workbooks.Open(pfad_i)
    hallo,

    danke erstmal.

    wenn ich xliApp so definier wie du, steht da ""NEW" kann nich auf einer Schnittstelle verwendet werden".
    deswegen hab ichs so gemacht.

    Visual Basic-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim xliApp As New Object
    3. Dim xliWB As Excel.Workbook = xliApp.Workbooks.Open(txtDB.Text)
    4. Dim xliWS = xliApp.Workbooks.Sheets("pro_node")
    5. xliWS.Cells.Sort(Key1:=xliWS.Range("C1"), Order1:=1, Header:= _
    6. 0, OrderCustom:=1, MatchCase:=False, Orientation:=1, _
    7. DataOption1:=0)
    8. xliWB.Close()
    9. xliWB = Nothing
    10. xliApp = Nothing
    11. End Sub


    jetzt kann ich das programm laufen lassen und bekomm aber einen fehler wenn ich den button klicke:

    "der offentliche Member Workbooks für den Typ Pbject wurde nicht gefunden"

    und springt in zeile 2

    (Pfad_i ist jetzt txtDB.text)

    achja, und wie kann ich denn richtig xliWS zu dem sheet "pro_node" zuweisen

    win98 schrieb:

    "der offentliche Member Workbooks für den Typ Pbject wurde nicht gefunden"


    Hast du einen Verweis auf Excel gemacht?

    win98 schrieb:

    achja, und wie kann ich denn richtig xliWS zu dem sheet "pro_node" zuweisen


    Wenn die Tabelle in der zuvor geöffneten Arbeitsmappe ist (txtDB.Text), müsste es so funktionieren:

    Visual Basic-Quellcode

    1. Dim xliWS As Excel.Worksheet = xliWB.Sheets("pro_node")