Hallo,
ich hab mal wieder ein Problem und komme mit den durch die Suchfunktion gefundenen Dingen nicht klar, da sie auf mein Problem nicht ganz passen.
Ich habe folgenden Code
Delphi-Quelltext
1:
| If (Excel.Cells[StrToInt(V_Ini_Excel_9ProzentX), StrToInt(V_Ini_Excel_9ProzentY)] = 'X') then |
und genau da löst er die EVariantInvalidOpError aus.
Ich habe schon abgewandelt in
Delphi-Quelltext
1:
| If (Excel.Cells[StrToInt('27'), StrToInt('19')] = 'X') then |
und
Delphi-Quelltext
1:
| If (Excel.Cells[27, 19] = 'X') then |
Excel hab ich übrigens auf zwei verschiedene Arten deklariert:
mal so: Excel: OLEVariant;
und auch mal so: Excel: Variant;
Immer der gleiche Effekt.
Also insgesamt (gekürzt) so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| var Excel: Variant;
begin
...
try excel := CreateOleObject('Excel.Application'); excel.visible := False; except ShowMessage('Excel konnte nicht gestartet werden !'); end;
Excel.DisplayAlerts:=False; Excel.Workbooks.Open(OpenDialog1.Filename);
If (Excel.Cells[StrToInt(V_Ini_Excel_9ProzentX), StrToInt(V_Ini_Excel_9ProzentY)] = 'X') or (Excel.Cells[StrToInt(V_Ini_Excel_9ProzentX), StrToInt (V_Ini_Excel_9ProzentY)] = 'x') then RadioGroup6.ItemIndex := 4;
... |
Die Variablen V_Ini_Excel_9ProzentX und V_Ini_Excel_9ProzentY sind übrigens String.
aber immer der gleiche Effekt.
Ich glaube nicht, dass ich da was am Code geändert hätte und das hat ja sonst immer funktioniert.
Habt Ihr einen Tipp?