Selektierung/Aktivierung von Arbeitsblättern

3. Juli 2008 16:21

Ich möchte Daten von Dynamics per Automation Server an Excel übergeben.
Dazu habe ich Folgende globale Variablen deklariert.

N
ame DataType Subtype Length
Excel Automation 'Microsoft Excel 11.0 Object Library'.Application
Book Automation 'Microsoft Excel 11.0 Object Library'.Workbook
Range Automation 'Microsoft Excel 11.0 Object Library'.Range
Sheet Automation 'Microsoft Excel 11.0 Object Library'.Worksheet
Chart Automation 'Microsoft Excel 11.0 Object Library'.Chart

...

Nun erstelle ich ein Excel Dokument mit mehreren Arbeitsblättern.

Code:
CREATE(Excel);
Excel.Visible(TRUE);
Book := Excel.Workbooks.Add(-4167);

Sheet:=Book.Sheets.Add;
Sheet.Name := 'Blatt1';
Sheet:=Book.Sheets.Add;
Sheet.Name := 'Blatt2';
...


Wie kann ich nun die einzelnen Arbeitsblätter selektieren, um Daten zu übergeben?
(Prinzipiell wie folgt:)

Code:
Sheet('Blatt2').Activate;
Sheet.Range('A1').Value := 'test';
Sheet('Blatt1').Activate;
Sheet.Range('A1').Value := 'test2';
Sheet('Blatt5').Activate;
Sheet.Range('A1').Value := 'test3';
Zuletzt geändert von lape am 4. Juli 2008 01:13, insgesamt 1-mal geändert.

3. Juli 2008 18:52

Hallo Dennis,
das Vereinbaren der Blätter ist OK. Das Selectieren ... ist nicht richtig.

Mache es wie folgt:
Sheet := Book.Sheets.Item('Blatt1');
Sheet.Activate;
Range := Sheet.Range('A1');
Range.Value := 'Test1';
Und das analog für Blatt2 und Blatt3
Nur ein Hinweis: Du hast für die Bezeichnung der Variablen Worte genommen, die schon von EXCEL verwendet werden (z.B. Range) und das kann es unter Umständen Probleme geben.

Viel Spaß beim Aufruf von EXCEL aus Navision.
Gruß
Frank