Herbers Excel-Forum - das Archiv

Sheet(Idx).paste-Problem

Bild

Betrifft: Sheet(Idx).paste-Problem
von: Frank

Geschrieben am: 20.08.2015 17:20:36

Liebe Gemeinde,
beim Einfügen eines per VBA kopierten WRD-Dokuments (Selection.WholeStory; Selection.Copy) in XL bekomme ich den Laufzeitfehehler 1004 "Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden".
Setze ich nach 'Debuggen' den Code im Einzelschrittmodus fort, klappt es problemlos.
Ich bin ratlos. Egal ob ich mit ActiveSheet.Paste oder Sheets(Name).Paste, mit oder ohne Destination arbeite - immer der Fehler. Bei manueller Fortsetzung des Codes klappt es.
Was mache ich falsch?
Grüsse,
Frank

Bild

Betrifft: AW: Der komplette Code könnte helfen oT
von: JoWE
Geschrieben am: 20.08.2015 19:05:51

Bild

Betrifft: Der komplette Code könnte helfen...
von: Frank

Geschrieben am: 21.08.2015 09:41:59
Hallo JoWE,
das ist etwas umfangreicher und es läuft davor und danach ohne Schwierigkeiten.
Word wird geöffnet, alles markiert, kopiert, Word geschlossen. In XL wird ein neues Blatt angelegt, ein Name vergeben. Dann soll das Kopierte da eingefügt werden und der LZF 1004 erscheint. Beim Fortsetzen des Codes mit F8 (oder dem grünen Pfeil in der Buttonleiste) wird auch die angemeckerte Zeile ausgeführt und der Code läuft weiter.
Hier der betreffende Teil:
Set wrd = CreateObject("Word.Application")
with wrd
.visible=true
.documents.open FN   'in FN ist Pfad und Name
.selection.wholestory
.selection.copy
.quit
end with
Sheets.add after:=Sheets(Sheets.count)
Sheets(Sheets.count).Name="Transfer"
activesheet.paste Destination:=Range("A1")
Statt activesheet habe ich auch schon Sheets("Transfer") probiert. Bei Destination auch schon cells(1,1). Man kann in dem Fall Destination auch ganz weglassen, weil das Blatt neu erstellt wird und sowieso A1 selektiert ist.
Grüsse,
Frank

Bild

Betrifft: AW: Der komplette Code könnte helfen...
von: Werner
Geschrieben am: 21.08.2015 10:35:25
Hallo Frank,
versuch mal

Sheets("Transfer").cells(1,1).Insert
Gruß Werner

Bild

Betrifft: AW: Der komplette Code könnte helfen...
von: Werner
Geschrieben am: 21.08.2015 10:43:12
Hallo Frank,
oder aber

Sheets("Transfer").Cells(1, 1).PasteSpecial Paste:=xlValues
Werner

Bild

Betrifft: XL kaputt?
von: Frank

Geschrieben am: 21.08.2015 12:43:36
Hallo Werner,
danke für die Tipps.
Leider funktioniert beides nicht. Bei Insert läuft die Zeile zwar durch, fügt aber nichts ein (was dann später zu Schwierigkeiten führt).
Mit PasteSpecial kommt auch der LZF 1004, die Zeile lässt sich aber dann ebenfalls manuell ausführen.
Ich versuchs jetzt mal probeweise mit TXT-Dateien und anderen WRD-Dokumenten.
Grüsse,
Frank

Bild

Betrifft: AW: Ich stell mal auf offen
von: Werner
Geschrieben am: 21.08.2015 14:15:47

Bild

Betrifft: gelöst...
von: Frank

Geschrieben am: 21.08.2015 14:31:02
Hallo Werner,
ja, danke,habe ich auch wieder vergessen.
Ich habe mittlerweile eine Lösung, wobei die Erklärung wohl nur Bill G. Himself liefern kann: ich lasse Word noch offen, bis der Einfügevorgang durch ist (und zur Sicherheit bis zum Ende der Prozedur - man weiss ja nie) und beende dann mit wrd.quit.
Grüsse,
Frank

 Bild
Bewerten Sie hier bitte das Excel-Portal