habe eine Excelliste per VB gefüllt und möchte diese nun nach
2 Spalen sortieren:
For nRow = 1 To ListView1.ListItems.Count
With ListView1.ListItems(nRow)
ExcelWorksheet.Cells(nRow, 1).Value = .Text
For nCol = 1 To ListView1.ColumnHeaders.Count - 1
ExcelWorksheet.Cells(nRow, nCol).Value =
.SubItems(nCol)
Next nCol
End With
Next nRow
Hi Gunter,
in Excel-Vba kann man eine ListBox mit einem Vba-Einzeiler mit den Werten eines Excelzellenbereichs (Range) befüllen.
Von daher müßte es evtl. auch möglich sein dies umgekehrt zu tun, also einen Excel-Range bereich mit dem Inhalt einer ListBox zu befüllen.
Jetzt hast du da aber ein ListView-Objekt und keine Listbox und ListView kenne ich nicht so.
Dazu kommt, in Excl-Vba sortiert man über 2 Saplten so:
Range(„A1:B4“).Sort Key1:=Range(„A1“), Order1:=xlAscending, Key2:=Range(„B1“) _
, Order2:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Nur, ich weiß nicht wie man das über VB referenziert.
Wenn dir das nicht weiterhilft, dann poste mal bitte einen kompletten Code der von VB aus eine Exceldatei erstellt und dann mit deinem geposteten Code befüllt.
Problem könnte sein, ich habe nur VB5.0,vielleicht klappt der ja sowieso nicht.
In dem Zusammenhang, bitte immer angeben,welche Vb Version und in dem Fall auch, welche Excelversion.
Wobei mir schon klar ist, wenn du da eine VB.Exe bastelst, die auf Fremdrechnern laufen soll, so weißt du ja gar nicht welche Excelversion da vorhanden ist.
„Sort“ kennen alle Excelversionen, aber die Anzahl der Parameter unterscheidet sich.
Meine obigen Sort-Parameter kommen von Excel 2000, d.h. Excel2003, Excel2007 kennen die auch, also nimm nur die.
(2003, 2007, kennen mehr parameter.)
Gruß
Reinhard