![]() |
Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)
Hallo liebe Delphi-Gemeinde,
ich stehe gerade vor einem Problem u. vermutlich liegt dieses zwischen meinen Ohren :-) Ich versuche gerade über den Automation Server Office XP verschiedene Zellen einer Excel Tabelle ein zu färben. Das funktioniert auch problemlos, solange ich das Einfärben im Code nacheinander mache. Möchte ich das Ganze jedoch in einer Schleife ausführen, erhalte ich als Fehlermeldung eine Zugriffsverletzung auf Adresse 00404F26. :-( Anbei mein Code (Delphi: XE2 Prof.): var Zelle: Array[0..2] of String; I: Integer; // // Excel Application starten und Exceldokument oeffnen // ExcelApplication1.Connect; ExcelApplication1.Visible[GetUserDefaultLCID] := FALSE; ExcelApplication1.UserControl := FALSE; ExcelApplication1.Workbooks.Open('C:\Test.xls', False, False, EmptyParam, '', False, False, EmptyParam, EmptyParam, false, false, EmptyParam, EmptyParam, EmptyParam, false, 0); // Workbook verbinden ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveW orkBook); // Woorksheet verbinden und aktivieren ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets.It em[1] as _Worksheet); ExcelWorksheet1.Activate; // // Einzufärbende Zellen (als Test) // Zelle[0] := 'B11'; Zelle[1] := 'B12'; Zelle[2] := 'B13'; // // Funktionierender Code // I := 0; ExcelWorksheet1.Range[Zelle[I],Zelle[I]].Interior.ColorIndex := 3; I := I + 1; ExcelWorksheet1.Range[Zelle[I],Zelle[I]].Interior.ColorIndex := 3; I := I + 1; ExcelWorksheet1.Range[Zelle[I],Zelle[I]].Interior.ColorIndex := 3; // // Endlich der Code, der Probleme bereitet :-) // for I := 0 to 2 do begin ExcelWorksheet1.Range[Zelle[I],Zelle[I]].Interior.ColorIndex := 3; end; // // Speichern u. schliesen // ExcelWorkbook1.Save; ExcelWorkbook1.Close; Ich bin für jede Hilfe oder Anregung dankbar! Viele Grüße Dirk |
AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)
NACHTRAG:
Da ein Programmierer immer erst zum Schluß an sich zweifeln sollte :-D, habe ich das Ganze jetzt noch einmal mit Delphi 2009 probiert. Hier klappt es auch in der Schleife :( Viele Grüße Dirk |
AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)
Ist jetzt bestimmt nur in deinem Beispiel so, aber falls die zu färbende Region immer zusammenhängend sein sollte kannst du das auch in einem einzigen Befehl einfärben ala:
ExcelWorksheet1.Range['B11','B13'].Interior.ColorIndex := 3; |
AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)
Hallo Ralph,
danke für die Info. Die Zellen hängen jetzt nur in meinem Test zufälligerweise zusammen. Ich habe inzwischen ein Delphi Update gestartet auf Delphi XE2 Update 4. JETZT FUNKTIONIERTS :oops::oops::oops::oops: Sorry, für's "zumüllen". Aber vielleicht stolpert ja noch einmal jemand darüber... Viele Grüße Dirk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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