Notation in ExcelWorksheet1->get_Range
-
Hallo C++ Gemeinde,
in einer VCL-Anwendung starte ich Excel, Workbook und Worksheet. Aus einer Datenbank importiere ich Daten, die ich in das Worksheet schreibe. Bisher habe ich den Range folgendermaßen ermittelt:
*my_range = ExcelWorksheet1->get_Range(TVariant("A1"), TVariant(r)); // r = "Z1"
*wobei nur 26 Spalten und n Zeilen im Worksheet gefüllt wurden. Nun muss ich aber weitere Spalten pro Zeile füllen. Die Anzahl der Spalten soll programmtechnisch ermittelt werden und der Range automatisch angepasst werden. Ich habe mir gedacht, daß man das am besten mit der Z1S1 Bezugsart von Excel erledigt. Umschalten auf diese Bezugsart ist kein Problem :
ExcelApplication1->set_ReferenceStyle((long)0,xlR1C1);
Weiss vielleicht einer von Euch wie ich jetzt notieren muss ?
my_range = ExcelWorksheet1->get_Range(TVariant("Z1S1"), TVariant("Z1S30"));
oder
my_range = ExcelWorksheet1->get_Range(TVariant(beginn), TVariant(ende));// beginn = "Z1S1" ende = "Z1S30" beide AnsiString
funktioniert nicht und gibt mir eine Fehlermeldung.
Borland C++ 2007 Professional
Danke für Eure Hilfe.
Gruss
Christian
-
chvdsschule schrieb:
funktioniert nicht und gibt mir eine Fehlermeldung
Ah ja, sehr aufschlussreich ...
-
Hallo Jansen,
ja, stimmt ich hätte die Fehlermeldung gleich mitliefern sollen. Ich hol das jetzt nach. Also beim Ausführen der Zeile :
my_range = ExcelWorksheet1->get_Range(TVariant("Z1S1"), TVariant("Z1S30"));
erhalte ich folgende Fehlermeldung :
(GetDefaultInterface()->get_Range(Cell1,Cell2,(Excel_xp::ExcelRange*)&RHS))Error:800A03EC(-2146827284) @ excel_xp_srvr.cpp/5686 Press [y]ess to Terminate ...*
Soweit die Fehlermeldung.
Ich vermute einen Notationsfehler meinerseits beim Inhalt der Klammer von TVariant. Get_Range hat jedoch nur zwei Parameter, die Fehlermeldung zeigt nach "Cell2" aber ein Komma und einen dritten Parameter. Was mach ich da nur falsch ?
Gruss
Christian