我有一个存在于SharePoint文档库中的.docm文件。打开时,宏会触发并提示用户输入新的文件名和文件夹,然后使用.SaveAs2将指定位置的文件副本保存为不带宏的.docx文件。
我无法使用具有正确.dotm的SP内容类型作为模板,因为库中有超过30种不同的文件模板。我必须在SharePoint库中使用.docm,然后确保用户将该文件的副本保存到其个人驱动器中。
所以我在open事件中使用了一些代码。我让用户指定一个文件夹和一个文件名。然后.SaveAs2
获取这些参数,并将当前文件保存在新路径中,新名称为不带宏的普通.docx文件。我将为您提供有关如何收集strFolder
和strDoc
的详细信息。请放心,他们存在。我有一个带有完整文件名的debug.print,它是正确的。
With o
.SaveAs2 strFolder & strDoc & ".docx", wdFormatDocumentDefault
End With
问题是此代码会显示一条消息,指出无法找到该文件。
嗯,呃,我正在尝试将文件保存在这个位置。当然它不存在。这才是重点。 (请注意,该文件夹确实存在。)
关闭消息框后,Word会愉快地将文件保存到指定位置。
此外,只有在SharePoint的“读取”模式下打开原始文件并且新文件路径位于网络驱动器上时,才会弹出消息。
如果
,则不会弹出消息在生产系统中,用户将无法选择“编辑”或“只读”。它们将默认为只读。此外,用户将无法保存到本地C:\驱动器,因为业务系统将其配置文件和“我的文档”放在网络驱动器上(H :)。
我试过了
msoFileDialogSaveAs
- 相同的消息Application.DisplayAlert = False
(我知道,但我绝望)或wdAlertsNone
来抑制消息。 - 不起作用。消息仍然显示On Error Resume Next
或On Error Goto MyHandler
来抑制消息,但会弹出消息而不会触发错误处理程序。该消息具有蓝色的“i”图标,因此可能不会将其解释为错误,而是作为一条信息。 如何消息消失?
此外,虽然这不是必不可少的,但我们很高兴知道:
答案 0 :(得分:1)
在几次徒劳的尝试改变SharePoint以只读模式提供文档的方式后,我使用以下方法创建一个新的Word文档,将其保存到用户的临时文件夹,将文档从临时文件夹复制到文件夹先前由用户指定。现在文档存在并且使用SaveAs不会触发错误消息。
在下面的代码运行之前,用户已经定义了文件名(strDoc)和要保存到的文档的文件夹。
' 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
答案 1 :(得分:0)
这是基于一些谷歌搜索和类似经历的黑暗镜头: 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
相关位:
"<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.
如果Word 2007正在使用,您可能会看到上述错误 与防病毒软件发生冲突。大多数冲突都是 由防病毒软件制造商解决,但你必须 下载并安装防病毒软件的更新或修补程序 (而不仅仅是新的病毒定义)来解决问题。见 软件制造商的网站,可能的更新和 有关配置问题的知识库文章。
...然后从迈克菲描述相关问题: https://kc.mcafee.com/corporate/index?page=content&id=KB75449
我发现大多数论坛讨论涉及服务器端实时反病毒扫描 - 这与Office 2010的保存机制之间的行为之间的相互作用有关,而不是基于访问的实时文件扫描。
即使这不能解决您的问题,也希望它有所帮助!