AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.02.20 - 03:59:00
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  OLE/COM-Programmierung
| | |-+  xlsheet.copy(... funktioniert nicht
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: xlsheet.copy(... funktioniert nicht  (Gelesen 2659 mal)
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« am: 05.02.16 - 13:34:12 »

Ich will beim Austauschen einer Excel-Tabelle (Notes-Dateianhang) benutzerdefinierte Tabellenblätter in die neue Vorlage hinüberkopieren:
Code:
'check for user defined worksheets in original template
c = excelobj_o.Workbooks(1).Worksheets.Count
For x = 1 To c
wsn$=excelobj_o.Workbooks(1).Worksheets(x).Name
If wsn$ <> "Performance Analysis" and wsn$ <> "Reportinfos" And wsn$ <> "PA-Export" And wsn$ <> "Translations" Then
Set xlsheet_o = excelobj_o.Workbooks(1).Worksheets(wsn$)
Print "copying user defined worksheet " & wsn$
Set lastsheet = excelobj_n.ActiveWorkbook.Worksheets(excelobj_n.ActiveWorkbook.Worksheets.Count)
Set xlsheet_o = excelobj_o.Workbooks(1).Worksheets(wsn$)
Call  xlsheet_o.Copy(Null,lastsheet)
Call excelobj_n.ActiveWorkbook.Save
MsgBox excelobj_n.ActiveWorkbook.Worksheets.Count
End If
Next

Tut aber nix. Die MsgBox gibt für die neue Tabelle die Anzahl der bereits vordefinierten Arbeitsblätter zurück; das Arbeitsblatt xlsheet_o wird nicht kopiert (Zuweisung passt - xlsheet_o.Name gibt korrekt den Namen zurück).

Bin ein wenig ratlos...
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Andrew Harder
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 289



« Antworten #1 am: 05.02.16 - 21:48:54 »

Ich habe jetzt kein Excel da um das zu testen, aber wenn Du beide Templates auf der Platte hast, dann würde ich das wohl in etwa so probieren
Code:
tempDir$ = Environ("Temp")
set xlwbTemplateOld_o = excelobj_o.Workbooks.Open(tempDir$ & "\Template_Old.xlt")
set xlwbTemplateNew_o = excelobj_o.Workbooks.Open(tempDir$ & "\"Template_New.xlt")
orginalSheetNames(0) = "Performance Analysis"
orginalSheetNames(1) = "Reportinfos"
orginalSheetNames(2) = "PA-Export"
orginalSheetNames(3) = "Translations"
countOld = xlwbTemplateOld_o.Worksheets.Count
countNew = xlwbTemplateNew_o.Worksheets.Count
Print "count (before): ", Cstr(countNew)
doSave = False
For index = 1 To countOLD
wsn$ = xlwbTemplateOld_o.Worksheets(index).Name
If IsNull(Arraygetindex(orginalSheetNames, wsn$)) Then
Set xlsheet_o = xlwbTemplateOld_o.Worksheets(wsn$)
Print "copying user defined worksheet " & wsn$
Set lastsheet_o = xlwbTemplateNew_o.Worksheets(countNew)
Call xlsheet_o.Copy(Null,lastsheet_o)
doSave = True
countNew = xlwbTemplateNew_o.Worksheets.Count
Print "count (current): ", Cstr(countNew)
End If
Next index
Print "count (after): ", Cstr(countNew)
If doSave = True Then
Call xlwbTemplateNew_o.Save
End If
« Letzte Änderung: 05.02.16 - 21:57:24 von Andrew Harder » Gespeichert

Andy
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« Antworten #2 am: 10.02.16 - 11:40:50 »

War ladürnich wieder ein Freitagspost... das ging deshalb nicht, weil ich mit zwei verschiedenen Excel-Instanzen gearbeitet hatte - und noch dazu vergessen, das On Error Resume... auszukommentieren. Im selben Excel.Application-Objekt funktioniert es einwandfrei.

Aber danke für Deinen Wink mit dem Array-Pfahl  Wink Ist natürlich sauberer, weil ich auf diese Weise die zu berücksichtigenden Vorlage-Tabellenblätter im Template-Sheet anstatt im Code definieren kann.
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: