Domino 9 und frühere Versionen > Entwicklung
Werte in bereits vorhandenes Excel exportieren
rar:
Hi ihr,
ich bin gerad via script mehrere Dokumente ins Excel zu kopieren. Das war bis jetzt eigentlich nicht so das Problem. Ich habe einfach folgenden Code verwendet:
--- Code: ---Set exlApp= CreateObject("Excel.application")
Set exlSheet = exlApp.Workbooks(1).Worksheets(1)
--- Ende Code ---
Dann hab ich mit z.B.
--- Code: ---exlSheet.Cells(10,1).Value = "Werte"
--- Ende Code ---
und so weiter die Zeilen befüllt, formatiert. So wie ich es halt möchte.
Jetzt steh ich aber vor folgendem Problem.....
Die Werte sollten in eine bereits fertige Excel Vorlage geschrieben und danach geöffnet werden. (Abspeichern ist nicht nötig). Ich habe dazu in einem Profildokument ein RTF erstellt, in das die Vorlage eingehängt wird. Mit
--- Code: ---Set rtitem = doc.GetFirstItem( "Vorlage" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
--- Ende Code ---
hab ich dann das Excelobject in der Variable o.
Um jetzt meine Werte in das excel schreiben zu können, muss ich jetzt die variablen exlApp und exlSheet befüllen. Die Variable o entspricht aber nicht dem Ergebnis, das man mit
Set exlApp= CreateObject("Excel.application")
bekommt.
Kann mir vieleicht jemand sagen, wie ich von dem o zu dem exlApp komme?
Vielen Dank und Lei Lei :-P
-daniel
Axel:
Du muss die Vorlage aus dem Profildokument erstmal ins Filesytem lösen. Dann kannst du sie in Excel öffnen und füllen.
Axel
rar:
Danke für den Tipp Axel. Klingt einleuchtend. Leider klappt es noch nicht ganz.
Ich extracte das file erst mit Call o.ExtractFile( "C:\Test.xls" ) dann hol ich es mir mit Set exlApp =GetObject ( "C:\Test.xls" ). In der Vorlage sind Makros drin. Dadurch sieht man, dass das GetObject eigentlich funktioniert. Denn bei der Zeile kommt sofort die Meldung ob man die Macros aktivieren bzw deaktivieren möchte.
Wenn ich dann aber irgendwas mit der Object machen möchte, (z.B. Set exlSheet = exlApp.Workbooks(1).Worksheets(1), oder exlApp.Visible = True) kommt die Fehlermeldung Instance Member VISIBLE does not exist. Wenn das Object aber mit Set exlApp = CreateObject("Excel.application") erzeugt gehts...
Komisch
lG
-daniel
Tode:
tja, durch Dein "GetObject" erhälst Du Dummerweise kein "Excel.application" sondern eher ein Workbook- Objekt...
Und ein Workbook- Objekt hat nun mal keine "Workbooks"- Eigenschaft.
Du musst Dir Deine exlApp schon nochmal extra erstellen, wenn Du über "visible" etc. bestimmen willst... (Application- Eigenschaft der Workbook- Klasse....
und an die Arbeitblätter kommst Du ganz einfach über .Worksheets( 1 )
HTH
Tode
Axel:
Ich mach' das immer so:
--- Code: ---
Dim objExcel As Variant
Dim objSheet As Variant
On Error Resume Next
Set objExcel = GetObject("", "Excel.Application")
If Err = 208 Then ' Fehler 208 tritt auf wenn Excel noch nicht läuft
Err = 0
Set objExcel = CreateObject("Excel.Application") 'Excel "unsichtbar" starten
End If 'If Err = 208 Then
On Error Goto ErrorHandler
Call objExcel.Workbooks.Open ("Laufwerk:\Verzeichnis\Dateiname.xls")
Set objSheet = objExcel.Workbooks(1).Worksheets(1)
...
'Füllen der Zellen
...
'Excel sichtbar machen
objExcel.Visible = True
...
ErrorHandler:
' Hier erfolgt die Fehlerbehandlung
...
--- Ende Code ---
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln