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


Anmelden zum Antworten