Einzelnen Beitrag anzeigen

BingoBongo

Registriert seit: 30. Sep 2005
19 Beiträge
 
#1

[OLE-Fernsteue]Formeln in Exceltabellen eintragen - Problem

  Alt 28. Nov 2008, 00:29
Hallo allerseits,
ich habe ein Problem, bei dem ich mir Hilfe erhoffe.
Ich habe ein kleines Tool geschrieben, welches mir sehr lästige Routineaufgaben beim Arbeiten mit bestimmten Excel-Tabellen abnimmt. Unter anderem sollen Formeln innerhalb einer solchen Exceltabelle verändert oder überschrieben werden.
Leider klappt genau das nicht so wie es soll.
Hier mal der Code, den ich verwende, damit man sich ein Bild davon machen kann, wie ich die OLE Steuerung verwende.
Delphi-Quellcode:
procedure gesamtmiete;
//paßt die Formel für die Gesamtmiete so an, dass alle 8 Zellen addiert werden
var
  Excel: Variant;
  kopie, kopie2: string;
  pfad: string;
  i: integer;
begin
  Excel := CreateOleObject('Excel.Application');
  pfad:= form1.Edit2.Text;
  Excel.Workbooks.Open (pfad);
  Excel.Visible := true;

  application.ProcessMessages;
  Excel.Sheets[2].select;
  Excel.Sheets[2].Range['e5'].select;
  Excel.ActiveCell.formula:= '=sum(c5:d8)';
  Excel.ActiveCell.NumberFormat:='0,00';

  Excel.ActiveWorkbook.Save; //(pfad);
  Excel.Quit;
  Excel := unassigned;
end;
Mein Problem ist nun, wie schreibe ich eine sogenannte Array-Formel in eine Excel-Zelle. Das sind diese Formeltypen, die durch Ctrl-Shift-Enter abgeschlossen werden müssen und dann durch geschweifte Klammern dargestellt werden.
Ich habe eine solche Formel mal aus einer meiner Tabellen in eine Variable rauskopiert und in einem Edit-Feld anzeigen lassen, aber da fehlen die geschweiften Klammern. Ich habe es sogar schon versucht, diese geschweiften Klammern einfach mit in die Zielzelle reinzukopieren, aber das funktioniert genausowenig.
Hat da jemand eine Idee dazu?

Mein zweites Problem sind Tabellenverknüpfungen, also Zellbezüge, welche auf eine andere Tabelle zeigen, die zum Zeitpunkt der Tabellenbearbeitung nicht existieren. Beim Ausführen des Programmes kommt die Abfrage von Excel nach dem Verzeichnis, in dem sich die Tabelle befindet, die in der Verknüpfung benannt wurde.
Gibt es eine Möglichkeit, diese Art der Abfrage zu deaktivieren und wenn ja, wie?

Für Hilfe wäre ich wirklich sehr dankbar.

Bingo
  Mit Zitat antworten Zitat