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
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist wahrscheinlich ein Verlust des Fokus, wo der Wechsel zwischen Excel und PowerPoint ist das verursachen von PowerPoint, um den Fokus verlieren und daher gibt es keine
ActiveWindow
für PowerPoint einfügen oder dieActiveWindow
wird eine anderePane
in PowerPoint, wie der Foliensortierung oder in den Bereich "Notizen".Danke, Otaku. Bitte posten Sie Ihre "fokusverlust" - Nachricht als eine Antwort, so dass ich Kredit Sie die Punkte auf dieser. Sie wurden Knall auf. Die Lösung war, fügen Sie eine Zeile sagen Sie zu re-aktivieren Sie das Hauptfenster. Es sieht aus wie es war entweder der Foliensortierung-Bereich oder den Bereich "Notizen". - Anwendung.ActiveWindow.Scheiben(2).Aktivieren
habe es, gut zu hören, das Problem wurde entdeckt und behoben. Ich habe mich verändert, die Antwort oben.
InformationsquelleAutor Todd Main
Hier ist ein makro, das einwandfrei funktioniert, und es kostet nur einen Klick, statt 3, zum einfügen von text ohne Formatierung.
Hab ich auch 3 Makros zum platzieren von text in einer form, in einem klicken anstelle von 4:
- Format der automatischen form
- Text zone
- Wählen Sie oben, Mitte, unten,
- Klicken Sie auf den gewünschten Ort
Hier ist das makro für oben:
Genießen,
[email protected]
InformationsquelleAutor Michel Mahieu
War ich das gleiche Problem Auftritt. Ich habe makro exportiert eine Menge von Graphen in PowerPoint. Aber einige copy-paste-Aktionen enden mit dem gleichen Fehler wie oben (Laufzeitfehler '-2147188160 (80048240)':)
Erkannte ich, dass die PasteSpecial Fehler wurde nicht durch den Verlust des Fokus, der aber durch den Verlust der Zwischenablage.
Die Lösung ist daher Kopierens der Bereich in die Zwischenablage wieder gerne:
Vielleicht hilft jemandem...
InformationsquelleAutor kuba
War ich immer die gleichen Fehler und experimentierte mit viele der Lösungen auf hier. Was schließlich die Arbeit war für mich etwas sehr einfaches. Ich denke, es funktioniert, weil die erste Zeile, speichert einen Verweis auf die Folie. Die option einfügen könnte EnhancedMetaFile statt Bitmap.
InformationsquelleAutor swmcdonnell