Domino 9 und frühere Versionen > ND6: Entwicklung
Excel copy Sheet + after:=
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