Domino 9 und frühere Versionen > Entwicklung

Werte in bereits vorhandenes Excel exportieren

(1/2) > >>

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