Einzelnen Beitrag anzeigen

diavy

Registriert seit: 11. Apr 2012
54 Beiträge
 
#1

Problem beim Verwenden von Excel

  Alt 12. Dez 2012, 18:34
Hallo zusammen.

Ich bin gerade dabei ein Programm zu schreiben, das automatisch Resultate eines Sport-Turniers an meiner Schule in eine Excel-Tabelle einträgt.

Da das Programm bereits ziemlich lang ist, poste ich nur den Teil, in dem vermutlich der Fehler liegen sollte:


Delphi-Quellcode:
var
  Form1: TForm1;
  excel: variant;
  index7,index6:array[1..7] of integer;
  index5:array[1..6] of integer;
  index:integer;


procedure TForm1.FormCreate(Sender: TObject);
begin
initiateindexes;
excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Open('G:\....xlsx');
fillcombo1;
end;

procedure TForm1.ComboBox3Change(Sender: TObject);
var i,j:integer;
begin
ComboBox4.Clear;
j:=StrToInt(copy(ComboBox3.Items[ComboBox3.ItemIndex],2,1)); //Bestimmung der Klasse inngerhalb eines Jahrganges, dient zur Orientierung in der Mappe
case StrToInt(copy(ComboBox3.Items[ComboBox3.ItemIndex],1,1)) of //Unterscheidet die Jahrgänge
        7: begin
                i:=0;
                Excel.ActiveWorkbook.Sheets['7eme'].Select;
                index:=index7[j];
                while Excel.Cells[(index+i),2].Value <> 'do
                        begin
                        ComboBox4.Items.Add(Excel.Cells[(index+i),2].Value+' '+Excel.Cells[(index+i),3].Value);//die beiden Zellen-Werte sind Name und Vorname alle Mitschüler einer Klasse
                        inc(i);
                        end;
                end;
6:...
5:...
end;
Nachdem ich ein Objekt in der ComboBox3 ausgewählt habe, bekomme ich die Fehlermeldung:
'exception class EVariantError with message: 'Invalid variant type conversion'

Wenn ich dann wieder F9 drücke, kann ich das Programm weiterbenutzen, und in der ComboBox4 befinden sich die korrekten Objekte. Falls ich dann aber wieder was in der ComboBox3 ändere, geht der Spaß wieder von vorne los.

Ich habe auch schon versucht das '.Value' wegzulassen, da ich auch mehrmals den Befehl Excel.Cells[..,..] im Internet ohne das .Value gesehen habe, dies hat jedoch nichts erbracht.

Es wäre sehr nett wenn mir jemand helfen könnte, da ich noch viel zu tun habe, wenig erfahren bin, und unter zeitdruck stehe.
  Mit Zitat antworten Zitat