AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)
Thema durchsuchen
Ansicht
Themen-Optionen

Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)

Ein Thema von mrdata · begonnen am 3. Sep 2012 · letzter Beitrag vom 3. Sep 2012
Antwort Antwort
mrdata

Registriert seit: 20. Dez 2007
3 Beiträge
 
#1

Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)

  Alt 3. Sep 2012, 06:38
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
Dirk
  Mit Zitat antworten Zitat
mrdata

Registriert seit: 20. Dez 2007
3 Beiträge
 
#2

AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)

  Alt 3. Sep 2012, 08:56
NACHTRAG:

Da ein Programmierer immer erst zum Schluß an sich zweifeln sollte , habe ich das Ganze jetzt noch
einmal mit Delphi 2009 probiert. Hier klappt es auch in der Schleife


Viele Grüße
Dirk
Dirk
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)

  Alt 3. Sep 2012, 09:57
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;
Ralph
  Mit Zitat antworten Zitat
mrdata

Registriert seit: 20. Dez 2007
3 Beiträge
 
#4

AW: Excel Automation - Zelle einfärben (mal wieder, diesmal aber in Schleife)

  Alt 3. Sep 2012, 11:45
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

Sorry, für's "zumüllen".

Aber vielleicht stolpert ja noch einmal jemand darüber...

Viele Grüße
Dirk
Dirk
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.
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