PowerPoint-VBA - Paste Special (Enhanced Metafile) - bug

Bin ich mit einem makro in PowerPoint 2003 SP3 finden Sie eine angegebene Diagramm in einer Excel-Arbeitsmappe kopieren, und dann fügen Sie es in die aktuelle Folie als eine Erweiterte Metadatei mit, letztlich, die folgende Zeile des Codes:

Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile

So oft, wie es funktioniert, ich habe auch die folgende Fehlermeldung angezeigt:

Laufzeitfehler '-2147188160 (80048240)': 
Ansicht (unknown member) : Ungültige Anforderung. Der angegebene Datentyp ist nicht verfügbar.

Wenn ich das makro beenden und versuchen, es manuell Einfügen als Erweiterte Metadatei, ich habe kein problem, also es ist nicht so, als ob das clipboard-Objekt oder die pastespecialtype ist ungültig.

Hat sonst noch jemand erlebt? Haben Sie eine Lösung oder einen workaround? Es gibt nur wenige Ergebnisse und keine Lösungen in eine Google-Suche nach diesem Fehler.


Update

Den general-code ist wie folgt:

Set presPPTCurrent = ActivePresentation
Set objXLApp = GetObject(, "Excel.Application")

''#Find the target chart and copy it to the clipboard
With objXLApp
    ''#This part works - if I go to Excel, I can see that the chart is copied
End With

''#Now paste in the chart as an Enhanced Metafile
presPPTCurrent.Application.Activate
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile

Beachten Sie, dass dies in eine Sub in dem eine Form übergeben (die Form übergeben wird, verwendet als eine Referenz zu finden, das Diagramm in Excel). Ich habe realisiert, dass es nur Fehler, wenn ich versuche, die Wiederverwendung dieser sub auf mehrere Formen bestanden aus einer For-Next-Schleife in einer anderen Sub.

Jedoch, wenn ich einen einzigen Form zu dieser Sub mit über einen anderen Sub und dann re-run der Sub, der vergeht, mehrere Formen, es läuft wunderbar.


Lösung

Pro Otaku erwähnen, das makro wurde, verlieren die Konzentration auf die Slide-Bereich. Sagen Sie zu re-wählen Sie die Folie Bereich das Problem gelöst.

Application.ActiveWindow.Panes(2).Activate
Das Problem ist sehr wahrscheinlich der Verlust des Fokus auf PowerPoint, und daher gibt es keine ActiveWindow. Wenn Sie nach Ihrem code zu grabben von Excel, die hilfreich sein können.
vielen Dank für deinen input. Ich versuche, herauszufinden, die richtige Art und Weise zu aktivieren Sie das Fenster wieder. Vorausgesetzt, das ist das problem, ich bin immer noch nicht mit Erfolg. Nochmals vielen Dank. Sehr sehr geschätzt.
Ich habe versucht, mich selbst und die Activate Methode noch Fehler zufällig. Ich benutzte Vorschläge von Kuba und es funktioniert wie Charme.

InformationsquelleAutor variant | 2010-07-15

Schreibe einen Kommentar