Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Excel] OLE und Gruppierungen (https://www.delphipraxis.net/30127-%5Bexcel%5D-ole-und-gruppierungen.html)

Igotcha 20. Sep 2004 14:59


[Excel] OLE und Gruppierungen
 
Hallo zusammen,

ich benutze in meinem Programm ein Excel-OLE-Object zum Erstellen von Tabellen.

Jetzt möchte ich Zeilen gruppieren, finde aber nicht die passende Syntax.

So sieht es in VBA aus:

Code:
Rows("8:16").Select
Selection.Rows.Group
So geht es in Delphi nicht:

Delphi-Quellcode:
excel.sheets[1].rows[iStartGroup,iEndGroup].rows.group; oder
excel.sheets[1].rows[iStartGroup,iEndGroup].group;
Gruß Igotcha

Reinhard 18. Aug 2006 07:05

Re: [Excel] OLE und Gruppierungen
 
Guten Morgen,

gibt es für dieses Problem eine Lösung?

Reinhard

Dale 18. Aug 2006 09:09

Re: [Excel] OLE und Gruppierungen
 
Hallo Igotcha,

bei mir scheint folgendes zu funktionieren:

Delphi-Quellcode:
var lRange: String;
...
lRange := Format('%d:%d', [iStartGroup, iEndGroup]);
excel.sheets[1].Range[lRange].Rows.Group;
versuchs doch mal damit.

Gruß Dale

Igotcha 18. Aug 2006 10:18

Re: [Excel] OLE und Gruppierungen
 
Zitat:

Zitat von Dale
Hallo Igotcha,

bei mir scheint folgendes zu funktionieren:

Danke, aber der Ursprungspost ist 2 Jahre alt :-)

Reinhard 18. Aug 2006 10:37

Re: [Excel] OLE und Gruppierungen
 
Hallo,

@Dale:

Was sind den richtige Werte für "iStartGroup" und "iEndGroup"? Ist das der "Zellenname" also z.B. "A1"?

In meiner Delphi-Version (Delphi 6) benötigt das Range-Objekt zwei Parameter. Leider funktioniert dein Delphi-Quellcode bei mir so nicht :(

Hast du noch eine Idee?

@Igotcha:

Hast du das ganze noch lösen können? Auch wenn es schon zwei Jahre her ist :)

Reinhard

Dale 18. Aug 2006 10:47

Re: [Excel] OLE und Gruppierungen
 
@Reinhard:

iStartGroup und iEndGroup sind Integer-Variablen, die für die erste und letzte Zeilennummer stehen, die gruppiert werden sollen.

Gruß Dale

Reinhard 18. Aug 2006 11:05

Re: [Excel] OLE und Gruppierungen
 
Folgendes funktioniert leider bei mir nicht:
excel.sheets[1].Range[1,2].Rows.Group;

Dale 18. Aug 2006 11:09

Re: [Excel] OLE und Gruppierungen
 
'Range' erwartet einen String!

Also:

Delphi-Quellcode:
excel.sheets[1].Range['1,2'].Rows.Group;
Gruß Dale

Reinhard 18. Aug 2006 11:29

Re: [Excel] OLE und Gruppierungen
 
Hallo,

Range benötigt bei mir zwei Parameter und Group benötigt vier Parameter.
Bei mir sieht das dann so aus:

fWorkSheet.Range[1,2].Rows.Group(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

Funktioniert aber leider nicht :(

Reinhard

Dale 18. Aug 2006 12:47

Re: [Excel] OLE und Gruppierungen
 
von welchen Typ ist "fWorkSheet"?

Reinhard 18. Aug 2006 14:27

Re: [Excel] OLE und Gruppierungen
 
Ich hab den Quellcode jetzt gerade nicht da, aber ich glaube der Typ wa "WorkSheet_".

Dale 18. Aug 2006 14:32

Re: [Excel] OLE und Gruppierungen
 
möglicherweise liegt da das Problem, denn

Delphi-Quellcode:
excel.sheets[1]
liefert ein Objekt vom Typ "Sheets" zurück.

Gruß Dale

Reinhard 21. Aug 2006 06:46

Re: [Excel] OLE und Gruppierungen
 
Guten Morgen,

ich hab es jetzt noch mal wie hier beschrieben getestet. Über CreateOleObject funktioniert das ganze wie von Dale beschrieben.

Ich nutze hier in meiner Anwnedung die Excel2000.pas und die TExcelApplication und damit funktioniert es leider nicht. Ich möchte jetzt aber nicht alles auf Ole umstellen.

In diesem Fall werde ich die Gruppierung einfach weglassen.

Eine Kleinigkeit ist mir noch aufgefallen, die Zeile für die Gruppierung muss so aussehen:

Delphi-Quellcode:
excel.sheets[1].Range['1:2'].Rows.Group;
Dann hat sie bei mir funktioniert :)

Trotzdem danke für die Hilfe.

Reinhard

MSerror 2. Mai 2016 11:10

AW: [Excel] OLE und Gruppierungen
 
Hallo,

weiß jemand wie die Syntax lauten soll, wenn man mit Variablen arbeitet?

Hier ein Beispiel:

var
bereich : string;
zeile1, zeile2 : integer;

...
bereich := Format(#39 + '%d:%d' + #39, [zeile1, zeile2]);
excel.sheets[1].Range[bereich].Rows.Group; -> Hier bekomme ich den OLE-Fehler 800A03EC

Danke im Voraus für Eure Tipps.

bra 2. Mai 2016 12:09

AW: [Excel] OLE und Gruppierungen
 
Zitat:

Zitat von MSerror (Beitrag 1337279)
...
bereich := Format(#39 + '%d:%d' + #39, [zeile1, zeile2]);
excel.sheets[1].Range[bereich].Rows.Group; -> Hier bekomme ich den OLE-Fehler 800A03EC

Die #39 sehen falsch aus, wozu hängst du da nochmal ' ran?

himitsu 2. Mai 2016 12:09

AW: [Excel] OLE und Gruppierungen
 
Lass die #39 weg, denn im String seh ich hier nirgendwo Welche.

MSerror 2. Mai 2016 12:42

AW: [Excel] OLE und Gruppierungen
 
Super! Vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz