从共享驱动器加载的 Word 文档的本地副本无法使用 VBA 另存为 PDF 方法。不保存文档
Posted
技术标签:
【中文标题】从共享驱动器加载的 Word 文档的本地副本无法使用 VBA 另存为 PDF 方法。不保存文档【英文标题】:Local copy of word document loaded from shared drive not working with VBA saveas PDF method. Doesn't save the document 【发布时间】:2019-02-26 16:45:24 【问题描述】:我有一个宏在共享驱动器中只能由一个人/第一人访问时可以正常工作。当第二个人访问它而第一个人仍然打开它时,它说它已经打开。当我单击“创建本地副本并稍后合并更改”时,宏将运行直到它保存文件。
该宏基本上调用一个用户表单来收集信息,填写文档,然后将文档作为 PDF 保存到桌面。由于某种原因,PDF 未保存在本地副本版本中。当“关注超链接”出现时,它显示“错误 4198,命令失败”。我检查了我的桌面并且文件不存在,这让我相信这个错误与未创建的文件有关....
我只需要宏来允许将文档以 pdf 格式保存到他们的桌面,无论它们是普通版本,还是作为共享驱动器规则的副产品创建的本地副本。
Main_Form.hide
enviro = CStr(Environ("USERPROFILE"))
sName = Format(Date, "mm-dd-yyyy") & " Denial Letter - Invoice " & Invoice_Text.Value & ".pdf"
sPath = enviro & "\Desktop\"
ThisDocument.SaveAs2 FileName:=sPath & sName, fileformat:=wdFormatPDF
fullName = sPath & sName
ThisDocument.FollowHyperlink fullName
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
【问题讨论】:
【参考方案1】:使用模板(dotm),而不是文档。从模板创建新文档,这样就不会有文档“锁定”。
另外,不要使用ThisDocument
,因为它专门表示VBA代码所在的文档,而是使用ActiveDocument
。
【讨论】:
当我这样做并且他们打开了 dotm 时,我在文档打开事件中的代码不起作用,随后,不会调用用户窗体。不过,这确实解决了 cookie jar 问题中的多手问题。 - 嗯,它是选择性地调用。奇怪的。有时它会弹出启用宏横幅,启用时调用它,但现在不是。非常零星。 @BrandonLewallen 没有人应该打开 dotm,他们应该从中创建新文档。您当时应该运行的任何代码都需要在“New”事件(或 AutoNew 宏)中。双击一个点或在文件/新建中选择它将创建一个新文档。 @BrandonLewallen 您原来的问题现在得到解答了吗? 部分有,它允许他们所有人访问它,但无论出于何种原因,当文件然后保存为 pdf 并随后关闭时,vba 项目保持“活动”,所以当他们去要从模板再次打开/创建新文档,它会将旧信息存储在用户表单中,否则它不会执行“打开文档事件” 最初的问题是关于允许多个用户能够保存这些文档。如果这个问题得到了回答,那么是时候将这个问题标记为这样,并使用更改的背景信息和代码打开一个新问题。从目前的角度来看,没有足够的信息来处理在迁移到模板环境时所做的更改所引发的问题。我们需要查看所有涉及的代码。以上是关于从共享驱动器加载的 Word 文档的本地副本无法使用 VBA 另存为 PDF 方法。不保存文档的主要内容,如果未能解决你的问题,请参考以下文章