2014-04-11 7 views
6
  • 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. enter image description here

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) oder wdAlertsNone. - 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 oder On 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?
+0

'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

+0

Danke, @ PatricK, habe ich zuerst die anderen Optionen ausprobiert. Keine Zigarre. Ich habe den Beitrag aktualisiert. – teylyn

+0

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

Antwort

1

Nach mehreren vergeblichen Versuchen, die Art zu ändern, in der SharePoint das Dokument im schreibgeschützten Modus bereitstellt, habe ich den folgenden Ansatz verwendet, um ein neues Worddokument zu erstellen, im temporären Ordner des Benutzers zu speichern und das Dokument aus dem temporären Ordner zu kopieren Ordner, der zuvor vom Benutzer angegeben wurde. Jetzt ist das Dokument vorhanden und die Verwendung von SaveAs löst die Fehlermeldung nicht aus.

Bevor der folgende Code ausgeführt wird, hat der Benutzer einen Dateinamen (strDoc) und einen Ordner für das zu speichernde Dokument definiert.

' since we get an annoying message when trying to save to a network drive while 
' in read only mode, we first create a new, empty file in the user's temp folder, 
' then copy that empty file to the specified folder 
' set the temp folder and full path 
tempFolder = Environ("Temp") 
tempPath = tempFolder & "\" & strDoc & ".docx" 
' create a new document 
Documents.Add DocumentType:=wdNewBlankDocument 
ChangeFileOpenDirectory tempFolder 
' save to temp folder and close 
With ActiveDocument 
    .SaveAs2 tempPath, wdFormatDocumentDefault 
    .Close 
End With 
' copy from temp folder to previously defined destination 
FileCopy tempPath, fullPath 
' delete the temp file 
KillFile = tempPath 
' finally, save the contract over the empty file 
With o 
    .SaveAs2 fullPath, wdFormatDocumentDefault 
End With 
0

Hier ist ein Schuss im Dunkeln auf einige googeln basiert und ähnliche Erfahrung: http://blogs.technet.com/b/wordonenotesupport/archive/2009/02/07/word-2007-file-save-errors-an-error-is-displayed-when-attempting-to-save-a-word-document.aspx

Die relevent Bits:

  • "<path and file name>" cannot be found. Check your spelling, or try a different path.

  • <path and file name> is currently in use. Try again later.

  • Word cannot complete the save to due to a file permissions error.

Sie könnten die oben genannten Fehler, wenn Word 2007 ist mit einem Konflikt mit Antivirus-Software sehen. Die meisten dieser Konflikte wurden von den Herstellern von Antivirensoftware adressiert, aber Sie müssen herunterladen und installieren, Updates oder Patches für die Antivirus-Software (nicht nur neue Virusdefinitionen), um das Problem zu beheben. Informationen zu möglichen Updates finden Sie auf der Website des Softwareherstellers und unter Knowledge Base-Artikel zu Konfigurationsproblemen.

... und dann von McAfee ein ähnliches Problem beschreibt: https://kc.mcafee.com/corporate/index?page=content&id=KB75449

Die meisten Diskussionen im Forum I implicate serverseitige Echtzeit-Anti-Virus-Scan gefunden - etwas über das Zusammenspiel von Verhalten zwischen dem Sparmechanismus Office 2010 spielt nicht gut mit Live-Zugriffsscans.

Auch wenn dies Ihr Problem nicht löst, hoffe es hilft!

+0

Danke für Ihre Zeit. Ich habe diese Viren-Checker-Beiträge gesehen. Ich glaube nicht, dass sie sich bewerben. Wie kommt es sonst, dass die Datei im Bearbeitungsmodus ordnungsgemäß gespeichert wird? Wäre das für den Virus Checker von Bedeutung? Außerdem konnten Benutzer in den mit Virus Checker verbundenen Posts nicht manuell speichern. Ich kann das ohne Probleme machen. Die Nachricht wird nur angezeigt, wenn Saveas in VBA verwendet wird. Und dann, natürlich, gibt es die Tatsache, dass die Datei ** trotz der Nachricht ** gespeichert wird. Also, wie kann ich die Nachricht verschwinden lassen? Das ist alles, wonach ich bin, wirklich. – teylyn

+0

@teylyn Ah, danke für die Klarstellung. Wenn ich heute die Chance bekomme, im Internet herumzustochern, werde ich diese Punkte berücksichtigen :) – Blackhawk

Verwandte Themen