Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: g202e am 23.06.04 - 16:03:36
-
Hallo,
ich exportiere Daten nach Excel und möchte anschließend meine Excel-Tabelle sortieren. Also hab ich mir meine Excel-Tabelle geöfnnet und den Makro-Recorder angeschmissen:
gesamte Tabelle markiert -> Daten -> Sortieren -> Sortierkriterium ausgewählt(Spalte "B") dann "absteigend" ausgewählt und danach den Recorder gestoppt. Ich erhalte folgenden VBA-Code:
#############schnipp############
Cells.Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
#######schnapp###########
Wie bringe ich das jetzt nach LotusScript?
Mein Versuch:
g_xlApp.Cells.Select
g_xlApp.Selection.Sort(Range"B2", xlAscending, xlGuess, 1, False, xlTopToBottom)
wird abgelehnt mit "Unexspected:"B2";Exspected:Operator"
Es gibt doch hier sicher jemanden, der sowas schon getan hat?
(SuFu mit "excel + sort" war nicht zielführend)
Danke für eure Tipps
-
Hi,
das hab ich mal gemacht.
...
Set objExcel = CreateObject("Excel.Application")
...
Call objExcel.Workbooks.Add
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
...
objSheet.Cells.Select 'Gesamtes Arbeitsblatt markieren
objExcel.Selection.Sort objSheet.Columns("A"), xlAscending , "", objSheet.Columns("B"), xlAscending , objSheet.Columns("C"), xlAscending, xlGuess,1, False, xlTopToBottom
...
Sortierung erfolgt nach den ersten 3 Spalten aufsteigend.
Axel
-
Danke, Axel.
Mein Code sieht jetzt so aus:
Set g_xlApp = CreateObject( "Excel.Application")
Set g_xlWBook = g_xlWBooks.Add
.....
Set g_xlActSheet = g_xlWBook.ActiveSheet
......
g_xlActSheet.Cells.Select 'Gesamtes Arbeitsblatt markieren
g_xlApp.Selection.Sort g_xlActSheet.Columns("B"),"", xlAscending , xlGuess,1, False, xlTopToBottom
Ich erhalte jetzt eine Fehlermeldung(s.u.) Die ganzen xl....Attribute(ascending...) habe ich als variant deklariert.
Kannst du mir nochmal weiterhelfen?
-
Hi,
die ganzen xl... - Attribute sind Konstanten. Diese habe ich in einer Lib deklariert und vergessen mitzuposten. Sorry. :-\
Die Namen haben ich denen aus Excel angeglichen und die dazu passenden Werte aus dem Objekt-Katalog im VBA-Editor rausgesucht.
Wenn ich morgen früh in der Firma bin kann ich die die Angaben posten.
Axel
-
... zu den Konstanten gibt es in der IBM-Sandbox eine Datenbank zum Download - suche nach "EXCEL", oder "WORD"...
ata
-
Hi,
hier die versprochenen Konstanten:
'Konstanten für die Sortierung
Const xlAscending = 1
Const xlGuess = 0
Const xlTopToBottom = 1
@ata
Für Excel gibt es was, aber nur für Version 97. Es besteht die Möglichkeit, dass einige Konstanten geändert wurden und neue hinzugekommen sind.
Man kann diese Datei sicherlich als Anhaltspunkt verwenden, trotzdem schadet ein Blick in die Objektverweise im VBA-Editor nichts.
Axel
-
@Axel
... da gebe ich dir natürlich recht...
ata
-
Danke euch beiden.
Sobald mein Testserver wieder einsatzbereit ist, werde ich die Konstanten einbauen und hoffe mal dass es dann klappt.
@ata: Passt schon, wir arbeiten noch mit Office97.
-
So, nun gehts. Beim ersten Versuch bekam ich in der Zeile
g_xlApp.Selection.Sort g_xlActSheet.Columns("B"), xlAscending , xlGuess,1, False, xlTopToBottom
erhielt ich zwar: Microsoft Excel: Bezug ist ungültig
Nachdem ich für die ganzen optionalen weiteren Sortierkriterien leere Parameter übergeben habe, läuft es aber durch.
g_xlApp.Selection.Sort g_xlActSheet.Columns("B"),"",,,,, xlAscending , xlGuess,1, False, xlTopToBottom
Danke nochmals.