ActiveDocument.SaveAs2 保存文档,但保存后无法打开文档(仅限某些计算机型号)



目前我有一个带有宏可endable .dotm的文档模板。宏中有一个命令按钮,用于触发 SaveAs2 对象的两次格式,如下所示。

Public Sub FileSaveAs()
Dim dlg As Dialog
Dim strSaveFolder
strSaveFolder = Application.Options.DefaultFilePath(wdDocumentsPath)
Application.Options.DefaultFilePath(wdDocumentsPath) = ActiveDocument.AttachedTemplate.Path
ActiveDocument.SaveAs2 (ActiveDocument.AttachedTemplate.Path & " UsersName" & " FORM234" & Format(Now(), "DD-MMM-YYYY hh mm ss AMPM") & ".docm")
End

第二个另存为

Public Sub SuperSave()
Dim dlg As Dialog
Dim strSaveFolder
strSaveFolder = "I:Form StorageCoCopy"
ActiveDocument.SaveAs2 (strSaveFolder & "UserName" & "Form234" & Format(Now(), "DD-MMM-YYYY hh mm ss AMPM") & ".docm")
End Sub

现在这是一个有趣的部分,现在让我难倒了大约一个星期。此代码有效,但仅适用于某些计算机。由于某种原因,旧型号它不起作用。Windows 10或Windows 7或Office版本本身并不重要。它不适用于HP EliteDesk 1或HP EliteDesk 2等型号较旧的计算机。1 不起作用,但 2 会。

我从未听说过 vba 宏受到计算机版本的操作系统版本的影响,当然是 Word 的版本,但从未听说过模型版本。我已经用谷歌搜索了左右,并访问了 2010 年的文档(包括微软 2014 年的 kill activex 问题,我已经排除了(

这就是我的意思是空白,甚至没有打开下面的白页。

有什么想法吗?或者您是否听说过某些计算机型号不运行 vba 代码,但具有相同的操作系统和相同版本的 Office?

贾斯汀,我偶然发现您是否试图将 dotm 保存为文档。如果宏尝试将 dotm 另存为文档,则数据的格式是两个单独的实例。我遵循了这一点,并在右键单击并打开时对文档运行的测试中注意到它,并得到相同的结果,请尝试将模板另存为 docm 文档,这应该可以解决您的问题。

辛迪,贾斯汀是对的,它确实产生了正确的路径,并且在没有斜杠的情况下在 VBA 控制台中正确处理。在第一个子中,他似乎只在文件夹的路径之后,并保存在包含模板宏的文件夹之外的下一个父文件夹上。我在其他地方看到过这项工作,为什么它不适用于特定模型让我不知所措。

第二个似乎比第二个更具体地针对该位置,因为如果文件夹针对同事。我目前正在尝试重现该问题,但没有运气,您的代码在我运行的两个系统上都能完美运行,两者都是相当新的。

尝试更改 wdsaveformat 以匹配扩展类型 格式在较新的型号上可能会以不同的方式处理(不太可能,但值得一试(

或者重写 vba 并在较旧的受苦模型上文档,看看它们是否以不同的方式处理设置和格式

最新更新