在 VBA for Word 中获取保存的文件名

Posted

技术标签:

【中文标题】在 VBA for Word 中获取保存的文件名【英文标题】:Get the saved file name in VBA for Word 【发布时间】:2019-04-01 13:59:28 【问题描述】:

我需要你的帮助来解锁我。

我想检索用户在 VBA 中使用 Word 保存的文件的名称。我正在使用BeforeSave 方法,但我似乎无法捕捉到用户选择的名称。

提前感谢您的帮助!

【问题讨论】:

保存文件的新名称不会存储在任何地方。您也可以创建自己的保存对话框并存储该子的名称。 与this question相关但不是骗子 请向我们展示您的代码。否则,这个问题“没有表现出努力”,并且提供的任何代码都将更加“在上下文中”,因此更容易理解。您可以使用问题下方的edit 链接添加更多信息。 【参考方案1】:

由于另存为窗格没有触发SaveAs() 子,我认为唯一可靠的方法是由DocumentBeforeSave 触发的OnTime 事件。

类似:

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI = True Then
        Word.Application.OnTime Now + TimeValue("00:00:01"), "AfterSave"
    Else
        DoStuff()
    End if
End Sub
Sub AfterSave()
    CheckSaveOccured()
    DoStuff()
End Sub

请参阅this post 了解更详细的说明。

【讨论】:

以上是关于在 VBA for Word 中获取保存的文件名的主要内容,如果未能解决你的问题,请参考以下文章

文件保存期间如何处理和提示文件名(Word 2016,VBA)

在通过vba保存pdf之前更新表单域

VBA 代码(如果需要)将新的 Word 文档保存在与其他 Word 文档相同的目录中

如何使用 VBA 获取 word 文档的磁盘路径? Document.Path 改为返回 Web 路径

高分跪求 VBA word中实现循环搜索 并在WORD中找到列表 再根据已有数据自动填写进本行其它列

访问 VBA 自动化能够将 Word 文档保存到 Sharepoint 但不能保存到 Excel 电子表格