Problem beim Vergleichen mit Excel



  • Hi zusammen

    ich bin schon so weit dass ich mir etwas vom excel hole und auch in ein sttringgrid speichere... ABER... ich habe jetzt im StringGrid meine Srücklisten nummer stehen und im excel steht auch meine Stücklistennummer und die dazugehörige Zeichnungsnummer und die will ich mir nun auch in das stringgrid speichern.

    dh die Stücklisten nummer 34 340 21 hat zb die Zeichnungsnummer 58 695 23 die müssen aber nicht in der richtigen spalte stehen.

    ich hab das mal mit dem folgenden code probiert!

    Variant vE, vW, vWSs, vWS;
             AnsiString K;
    
             vE = Variant::CreateObject("Excel.Application");
    
             vW = vE.OlePropertyGet("WorkBooks");
             vW.OleFunction("Open","D:\\Nummern.xls");
    
             vWSs = vE.OlePropertyGet("Worksheets");
             vWS = vWSs.OlePropertyGet("Item", 1);
    
             Integer i=0;
             Integer x=0;
             do
             {
                    AnsiString test = AnsiString (vWS.OlePropertyGet("Cells", x,2).OlePropertyGet("Value"));
                    if (frmanzeige->strtabelle->Cells [2] [i] == test )
                    {
                            K = vWS.OlePropertyGet("Cells", x,2).OlePropertyGet("Value");
                            frmanzeige->strtabelle ->Cells [3] [i] = K;
                    }
                    else
                    {
                            ShowMessage(vE.OlePropertyGet("Cells",1,3).OlePropertyGet("Value"));
                            x++;
                    }
    
                    i++;
    
             }
    
             while (i<=140);
    

    da bekomm ich aber immer einen fehler bei der OlePropertyGet Methode und ich weiß leider nichtmehr weiter ... wäre nett wenn sich hierzu einer melden würde!
    THX



  • nutze mal den Debugger um den Grund für den Fehler zu finden, eventuell versuchst du auf Zeilen/Spalten zuzugreifen die es im Excel nicht gibt (max. Zeilen = 655xx, max. Spalten = 255)



  • naja den debugger gibt den fehler bei der OleProperty methode aus und ich fange ja bei der spalte immer mit 0 an bzw zelle.



  • derf schrieb:

    naja den debugger gibt den fehler bei der OleProperty methode aus und ich fange ja bei der spalte immer mit 0 an bzw zelle.

    Du musst hier bei 1 anfangen.
    Ansonsten sehen die OLE-Befehle richtig aus und laufen bei mir auch.

    EDIT: Der ist richtig: vWS.OlePropertyGet("Cells", x,2).OlePropertyGet("Value")



  • jop mit 1 funktionierts ... nur schreibt er mir nichts in meinen StringGrid hinein ka warum


Anmelden zum Antworten