![]() |
Excel OLE Steuerung und Formeln
Hallo zusammen,
ich bin gerade dabei Daten aus meiner Anwendung nach Excel zu schreiben. Das funktioniert soweit auch ganz gut.
Code:
Es soll in der ersten Spalte ein Titel eingetragen werden, in der zweiten Spalte eine Nummer und in der dritten Spalte soll die Verknüpfung von *Nummer* erfolgen (also der Wert aus der zweiten Spalte mit * davor und dahinter).
ExcelApp := GetActiveOleObject;
for i := 1 to Datensatzanzahl do begin // .... // LTitle und LNummer mit Daten füllen // ... ExcelApp.Sheets[1].Cells[LZeile,1].Value := LTitle; ExcelApp.Sheets[1].Cells[LZeile,2].Value := LNummer; ExcelApp.Sheets[1].Cells[LZeile,3].Formula := '=VERKETTEN("*",$B$'+IntToStr(LZeile)+',"*")'; ExcelApp.Range['D'+IntToStr(LZeile)+':D'+inttoStr(LZeile)].Select; ExcelApp.Selection.Font.Size := 22; ExcelApp.Selection.Font.Name := 'Ccode39'; end; ExcelApp.ActoveWorkBook.SaveAs(LDateiname); ExcelApp.DisplayAlerts := False; ExcelApp.Quit; ExcelApp := Unassigned; Wenn ich das ausführe erhalte ich in der Zelle mit der Verkettung "#NAME?" Ich muss in den Zellen mit der Formeln einmal mit "F2" den Editiermodus starten und diesen mit ENTER beenden. Dann wird die Formel richtig interpretiert und ich bekomme die Verkettung angezeigt die ich will. Hat jemand eine Idee, woran das liegen könnte? Es sollte doch möglich sein, dass die Formel auch direkt richtig ausgewertet wird. Gruß, Rainer |
AW: Excel OLE Steuerung und Formeln
Hallo,
das ging so nicht, du kannst nicht Cell.Value, sondern mußt z.B. Cell.FormulaR1C1 verwenden. Da gabs glaube auch noch andere FormulaXyZ, mußt du mal schauen ;-) gruß Frank |
AW: Excel OLE Steuerung und Formeln
Zitat:
|
AW: Excel OLE Steuerung und Formeln
.FormulaLocal
gibts da afaik noch. Und wenn du mit Verketten schon die dt. Version des Befehls nimmst... und ansonsten immer direkt in Excel selbst per VBA mit Hilfe rumprobieren, da findet sich die Lösung leichter und man muss das dann nur noch nach Delphi übertragen. |
AW: Excel OLE Steuerung und Formeln
Langsam kommt das Gedächtnis auch wieder. Ich glaube, da war noch ein Haken, mußte man die Formeln nicht auch englisch übergeben?
Evtl probier erstmal eine andere einfachere Formel wie "wenn/If". Weiß jetzt grade nicht, was verketten im Excel auf englisch heißt. Aber es gab glaube regelrechte Tabellen mit den Übersetzungen im Inet. |
AW: Excel OLE Steuerung und Formeln
@Keldorn: Danke, der Hinweis mit dem englischen Befehl war Gold wert. Die Formel von =Verketten umgewandelt in =CONCATENATE und schon funktioniert es.
|
AW: Excel OLE Steuerung und Formeln
aber gugg wirklich nochmal, was die einzelnen .FormulaXYZ bedeuten ;-). Gibts ja zu Hauf Office-Foren, die sich damit beschäftigen.
Bei mir ist das zu lange her und ich weiß nicht mehr, wann es welche Version gab oder auch nicht gab ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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 by Thomas Breitkreuz