Hallo,
ich lese über folgenden Code eine Zelle einer Exceltabelle ein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| try Excel:=CreateOleObject('Excel.Application'); Excel.Visible:=False; except ShowMessage('Excel konnte nicht gestartet werden !'); Exit; end;
Excel.Workbooks.Open(eExcel.Text);
Excel.Worksheets.Item['Z'].Activate
strTemp:=Excel.Cells[1,1]; |
Das funktioniert solange ein 'Wert' in der Excelzelle steht. Steht dort aber '#DIV/0!' oder '#WERT!' erhalte ich einen EVariantError.
Das verstehe ich auch - ist ja bereits ein Fehler in Excel
Wie kann ich solche Zellen übergehen bzw. mit einer Showmessage auf die fehlerhafte Zelle hinweisen.
Mit folgender Funktion
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function CT(Input: Variant): String; begin try Result:=Input; except on EVariantError do begin showmessage('EVariantError'); Result:='0'; end; end; end; |
und dem Aufruf
Delphi-Quelltext
1: 2: 3:
| ... strTemp:=CT(Excel.Cells[1,1]); ... |
bricht das Prog immer vor dem except Block ab.
Liegt wohl an der Zuweisung Result:=...
Kann mir jemand ein Tipp geben?
Danke!