Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriff auf eine Excel-Zelle mit Namen (https://www.delphipraxis.net/108006-zugriff-auf-eine-excel-zelle-mit-namen.html)

Linkat 13. Feb 2008 15:34

Re: Zugriff auf eine Excel-Zelle mit Namen
 
Hallo Shmia,
habe die zwei Änderungen eingearbeitet.
Das Programm wird nun kompiliert.
Nach Start und Button-Klick bleibt das Programm mit folgender Fehlermeldung stehen (s. oben):

Zitat:

...eine Exception der Klasse EOleException mit der Meldung 'EOle-Fehler 800A03EC' ist aufgetreten.
Der Fehlerbalken springt dann in diese Zeile:

Delphi-Quellcode:
    ExWS1.Range['B5:C15',null].Name := 'Test';
Für weitere Tipps bin ich dankbar.

Gruß, Linkat

Linkat 14. Feb 2008 08:51

Re: Zugriff auf eine Excel-Zelle mit Namen
 
Hallo,
so nach weiterem Rumprobieren funktioniert das Programm so, wie ich es möchte.
Vielen Dank shmia, marabu und Chemiker für die Tipps und Anregungen.

Hier möchte ich das Ergebnis noch einmal zusammen fassen:

Dazu ist erforderlich, dass der Excel-File Book1.xls mit dem Sheet1 und der mit 'Test' benannten Zelle existiert.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var tmp      :OleVariant;
begin
  ExAP1.Workbooks.Open('C:\Book1.xls', EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,0);
  ExWB1.ConnectTo(ExAP1.ActiveWorkbook);
  ExWS1.ConnectTo(ExWB1.Sheets.item['Sheet1'] as _Worksheet);

  tmp:=ExWS1.Range['Test',emptyParam].Value2;
  Label1.Caption:=tmp;
  ExAP1.Quit;
end;
der Clou sind die Zeilen:
Delphi-Quellcode:
  tmp:=ExWS1.Range['Test',emptyParam].Value2;
  Label1.Caption:=tmp;
mit dem EmptyParam und Value2.
Zur Übergabe des Zellinhaltes muss die tmp-Variable vom Typ OleVariant engesetzt werden.
Um Excel sauber zu verlassen ist am Ende noch die Methode Application.Quit zu verwenden.


Gruß, Linkat


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz