Domino 9 und frühere Versionen > ND6: Entwicklung

Excel copy Sheet + after:=

(1/2) > >>

robertpp:
Guten Morgen,

Kann mir bitte jemand weiterhelfen.
Ich hab das Problem, dass ich per Notes Script eine Excel-Dokument öffne und dann möchte ich das Tabellenblatt mehrmals (Anzahl vorerst unbekannt) kopieren.

Der normale Befehl ist ja im VBA:

Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy After:=Sheets(1)

Nun ist aber das Problem das ja := im Notes nicht geht.

Wie kann ich jetzt ein bestehendes Blatt in diesem Exceldokument kopieren?

danke robert

Glombi:
Hier hat sich jemand die Mühe gemacht das schön zu beschreiben:

LDD: How to get around the ":=" that VB uses to set parameters in Lotus Notes

Andreas

robertpp:
Hallo,

Danke Adreas, genau das hab ich gesucht.

Ich hab auch parallel weitergesucht und ebenfalls noch entdeckt, dass in der VBA Hilfe das so drinnen steht:


--- Code: ---Copy-Methode, wie sie auf die Objekte Chart, Charts, Sheets, Worksheet und Worksheets angewendet wird.

Kopiert das Blatt an eine andere Position in der Arbeitsmappe.

Ausdruck.Copy(Before, After)

Ausdruck   Erforderlich. Ein Ausdruck, der eines der o. a. Objekte zurückgibt.

Before  Optionaler Variant-Wert. Das Blatt, vor das dieses Blatt kopiert wird. Sie können Before nicht angeben, wenn Sie After angeben.

After   Optionaler Variant-Wert. Das Blatt, hinter das dieses Blatt kopiert wird. Sie können After nicht angeben, wenn Sie Before angegeben haben.

Anmerkung
Wenn Sie weder Before noch After angeben, erstellt Microsoft Excel eine neue Arbeitsmappe, die das kopierte Blatt enthält.

--- Ende Code ---

Dort wird es ebenfalls ohne ":=" beschireben und mit "()"

Es ist aber sinnvoll es so zu machen wie im Link beschrieben. Anders kann es nämlich zu Probleme kommen.

Danke und Gruss Robert

robertpp:
Hallo,

Ich hab leider ein kleines Problem noch!!

Copy verhält sich nicht wie Add.

Kann mal bitte jemand das mit einem Agent ausprobieren:

Sub Initialize
   Dim xlApp As Variant
   Dim xlsheet As Variant
   Dim xlsheet1 As Variant
   Dim file As String
   
   file ="C:\temp\Dienstreiseliste.xls"
   
   Set xlApp = CreateObject("Excel.Application")
   xlApp.Visible = False
   xlApp.Visible = True
   xlApp.Workbooks.Open ( file )
   Set xlsheet = xlApp.ActiveWorkbook.Worksheets(1)   
   xlApp.ActiveWorkbook.Sheets("Tabelle1").Select
   
   Dim after As Variant
   Set after = xlApp.Workbooks(1).Worksheets(1)
   Set xlsheet1 = xlApp.worksheets(1).Copy(Null,after)
   
End Sub

Ich bekomme bei der roten Zeile immer ein "type mismatch".
Aber er kopiert trotzdem das erste Tabellenblatt und sogar richtig (danach)

Oder sieht jemand einen Fehler?
danke Robert

LN4ever:
Was passiert denn, wenn du das NULL einfach wegläßt, also

Set xlsheet1 = xlApp.worksheets(1).Copy(,after)

Wenn du das NULL-Element brauchst, mußt du es deklarieren, also z.B.
Dim v_before as Variant
v_before=NULL

Set xlsheet1 = xlApp.worksheets(1).Copy(v_before,after)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln