- Sharepoint 2010
- Word 2010
- Windows 7 Enterprise
ich eine .docm-Datei, die in einer Sharepoint-Dokumentbibliothek lebt. Wenn es geöffnet wird, wird ein Makro ausgelöst und fordert den Benutzer zu einem neuen Dateinamen und einem neuen Ordner auf. Anschließend wird mit .SaveAs2 eine Kopie der Datei am angegebenen Speicherort als DOCX ohne Makro gespeichert.Wort VBA .SaveAs2 erscheint Meldung (in manchen Situationen)
Ich kann SP-Inhaltstypen nicht mit einer richtigen .dotm als Vorlage verwenden, da es mehr als 30 verschiedene Dateivorlagen in der Bibliothek gibt. Ich muss die .docm in einer SharePoint-Bibliothek verwenden und dann sicherstellen, dass der Benutzer eine Kopie der Datei auf ihrem persönlichen Laufwerk speichert.
Also verwende ich etwas Code im offenen Ereignis. Ich lasse den Benutzer einen Ordner und einen Dateinamen angeben. Dann übernimmt .SaveAs2
diese Parameter und speichert die aktuelle Datei im neuen Pfad mit dem neuen Namen als normale DOCX-Datei ohne Makros. Ich erspare Ihnen die Details darüber, wie strFolder
und strDoc
gesammelt werden. Sei versichert, dass sie existieren. Ich habe ein debug.print mit dem vollen Dateinamen und es ist korrekt.
Das Problem ist, dass dieser Code eine Meldung anzeigt, dass die Datei nicht gefunden werden kann.
Nun, duh, ich versuche, die Datei an diesem Ort zu speichern. Natürlich existiert es nicht. Das ist der Punkt. (Beachten Sie, dass der Ordner vorhanden ist.)
Nachdem das Meldungsfeld geschlossen ist, speichert Word glücklich die Datei an dem angegebenen Speicherort.
Die Nachricht wird auch nur angezeigt, wenn die ursprüngliche Datei im Lesemodus von SharePoint geöffnet wird UND der neue Dateipfad auf einem Netzlaufwerk liegt.
Die Meldung Pop-up nicht auf, wenn
- die Datei im Bearbeitungsmodus geöffnet wird (klicken Sie auf die Sharepoint-Datei, wählen Sie Bearbeiten im nächsten Dialog) oder wenn
- die Datei auf einem lokalen gespeichert Laufwerk (C :) oder wenn
- die Datei aus dem Datei> Aktuelle Backstage-Dialog geöffnet wird.
Im Produktionssystem haben die Benutzer nicht die Wahl zwischen Bearbeiten oder Nur Lesen. Sie werden standardmäßig auf Nur lesen gesetzt. Außerdem können die Benutzer nicht auf einem lokalen C: \ -Laufwerk speichern, da das Geschäftssystem ihr Profil und "Eigene Dateien" auf ein Netzlaufwerk (H :) legt.
ich versucht habe
- die Datei mit einem anderen Ansatz zu speichern: mit
msoFileDialogSaveAs
- gleicher Nachricht - die Nachricht mit
Application.DisplayAlert = False
unterdrückt (ich weiß, aber ich war verzweifelt) oderwdAlertsNone
. - Funktioniert nicht. Die Nachricht wird weiterhin angezeigt - Unterdrückung der Nachricht mit Application.ScreenUpdating = False. Funktioniert nicht. Die Nachricht wird weiterhin angezeigt.
- Unterdrückung der Nachricht mit der Fehlerbehandlung
On Error Resume Next
oderOn Error Goto MyHandler
, aber die Nachricht erscheint, ohne dass die Fehlerhandler ausgelöst werden. Die Nachricht hat das blaue "i" -Symbol, also wird sie vielleicht nicht als Fehler interpretiert, sondern als eine Information.
Wie kann ich die Nachricht verschwinden lassen?
Auch, obwohl dies nicht wesentlich ist, wäre es schön, zu wissen:
- Warum Materie nicht lesen oder Edit-Modus, wenn die Datei an einen neuen Speicherort gespeichert wird?
- Warum ist der neue Speicherort der Datei (Netzwerkpfad oder lokaler Pfad) wichtig, wenn sie gespeichert wird?
- Und warum erscheint die Nachricht, wenn die Datei danach korrekt gespeichert wird?
'Application.DisplayAlerts = wdAlertsNone'? Was Sie verwendet haben (Falsch) gilt für Excel, nicht für Word. Word kann nur 'wdAlertsAll',' wdAlertsMessageBox' oder 'wdAlertsNone' sein. – PatricK
Danke, @ PatricK, habe ich zuerst die anderen Optionen ausprobiert. Keine Zigarre. Ich habe den Beitrag aktualisiert. – teylyn
Ich nehme an, Sie haben, aber ich denke, ich sollte fragen: haben Sie überprüft, dass die Zeile, die den Fehler wirft, die 'SaveAs2' und nicht die' FileDialog' ist? Ich habe 'Application.FileDialog' gesehen, von dem ich glaube, dass Sie sich auf ähnliche Art und Weise falsch benehmen. – Blackhawk