![]() |
Excel Arbeiten in verschiedenen Proceduren
Hallo!
Ich bin seit gut einer Woche ein angehender Delphi-Programmierer und versuche mich an einem eispielprogramm, mit dem ich versuchen will, Excel durch ein Delphi-Programm fernzusteuern. Folgendes Problem: Ich will über mehrere Prozeduren hinweg auf das selbe sheet zuzugreifen, was mir nicht gelingt. In diesem eispiel will ich bei Start des Programms eine neues Workbook mit einem Sheet namens 'DP Sheet' erstellen, wenn ich auf dem Button klicke sollen Werte eingetragen werden und bei Schließung des Programms soll die Datei in eine vordefinierte Datei gespeichert werden. Das ist alles ein wenig sinnlos, ich weiß, aber es ist ja auch nur ein Test, um mein Wissen zu erweitern und mich auf die ultimative Aufgabe vorzuereiten ;-). Wenn ich alle Anweisungen in einer Prozedur schreien würde, klappt es. So, wie das Programm unten ausgeführt ist, klappt es nicht. Bitte um Hilfe! :stupid:
Delphi-Quellcode:
unit Test1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure ExcelFuellen(Sender: TObject); procedure Start_Prog(Sender: TObject); procedure Exit_Prog(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation procedure TForm1.Start_Prog(Sender: TObject); var Excel : Variant; begin Excel:= CreateOleObject('Excel.Application'); excel.Application.SheetsInNewWorkBook := 1; Excel.Workbooks.Add; Excel.Sheets[1].Name := 'DP Sheet'; excel.visible := true; end; Procedure TForm1.ExcelFuellen(Sender: TObject); var Excel : Variant; row, column: Integer; begin Excel:= CreateOleObject('Excel.Application'); row := 1; column := 2; Excel.Sheets['DP Sheet'].Cells[row,column].Value := 'Hallo'; Excel.Sheets['DP Sheet'].Cells[1,3].value := 5.23; end; procedure TForm1.Exit_Prog(Sender: TObject; var Action: TCloseAction); var Excel : Variant; begin Excel:= CreateOleObject('Excel.Application'); Excel.ActiveWorkbook.SaveAs('D:\Excel_Ablage\Test1.xls'); Excel.Quit; Excel := Unassigned; end; {$R *.dfm} end. |
Re: Excel Arbeiten in verschiedenen Proceduren
Deklarier Excel als globale Variable, dann brauchst du auch nur in der Start_Prog das OleObject zu initalisieren und dann sollte dein Vorhaben auch funktionieren.
|
Re: Excel Arbeiten in verschiedenen Proceduren
Danke, das wars! Jetzt läufts.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz