【发布时间】:2020-07-06 23:55:00
【问题描述】:
我想要实现的是使用Save 函数将Word 文档保存在两个地方。不过,它有两个缺点。首先,我保存文件时Word会闪烁(因为它关闭保存了一个副本,它变成了活动文档,它被关闭了,然后Word返回到原始文档)。二、宏把我的备份添加到最近的文件中,尽管AddToRecentFiles:=False如何避免两个故障?
Sub FileSave()
Dim currFile As String
Dim backup As String
backup = "C:\Users\" & Environ("UserName") & "\Documents\WordBackups\"
With ActiveDocument
If .Saved Or .Path = "" Then Exit Sub
If Dir(backup, vbDirectory) = "" Then
MkDir backup
MsgBox "Backup folder has been created.", vbInformation
End If
.Bookmarks.Add Name:="LastPosition"
Application.ScreenUpdating = False
.Save
currFile = .FullName
.SaveAs2 FileName:=backup & .Name, AddToRecentFiles:=False
End With
ActiveDocument.Close
Documents.Open FileName:=currFile
Selection.GoTo What:=wdGoToBookmark, Name:="LastPosition"
结束子
【问题讨论】:
-
阅读和理解代码将是一个好的开始,也许吧?说真的,您从 Internet 上复制代码并运行它(!),却丝毫不知道它是如何工作的?这是非常……不明智的。
-
首先,您应该删除 On Error Result Next 行,因为这将隐藏所有错误 - 了解生成的错误可能很重要!
-
@Cindy 这些是 18 行非常明显的代码,至少对于任何花几分钟时间试图理解它们的人来说。 OP显然没有做出这样的尝试。解释这段代码在做什么是徒劳的。
-
是的,我确实想到了这个想法。 OTOH,这应该是问答,这意味着解释可以帮助其他人,稍后再说。所以我妥协并提供了“家庭作业”,而不是在我的答案中给出更正的代码...... :-)
-
@Tomalak 如果想要评论某人的帖子,仔细阅读总是一个好的开始。如果你这样做了,你就会知道我写了“宏在 Word 关闭时保存当前文档”(!)。我不知道您如何得出我确实阅读过也没有尝试过理解代码的结论。