繁体   English   中英

来自书签的 MS Word 文件名 VBA

[英]MS Word filename from bookmarks with VBA

假设我有:

  • 包含宏的单词模板: custom_template.dotm
  • 此模板中的两个书签:“ first_name ”和“ last_name ”。

我希望在“保存”事件中,在对话框中,应用程序向用户建议,而不是“document1”,并且仅当存在相关书签时,文件名“ Document of first_name second_name.docx ”。

谁能解释一下如何使用 VBA 实现这一目标?

谢谢。

===更新===

现在我有了这段代码,当我执行它时运行良好。 我希望它在用户单击“保存文档”时自动运行。

Sub Demo()
Dim sFlNm As String
With ActiveDocument
  sFlNm = "Document of " & .Bookmarks("first_name").Range.Text & " " & .Bookmarks("last_name").Range.Text
End With
With Dialogs(wdDialogFileSaveAs)
  .Name = sFlNm
  .Show
End With
End Sub

要在客户端运行宏,您必须发送启用宏的模板或文档。 许多运行防病毒软件的人会收到可能存在 Word 病毒的警告。 然后用户将不得不手动启用宏。 他们会打扰吗?

使用保存命令使其自动运行可能会产生意想不到的后果。 您必须检查书签是否已实际填写,并且在修改文档时使用“保存”命令可以使用新文件名保存它。 但是您问了,所以方法如下:将宏重命名为FileSave 然后当你选择Ctrl + SFile>Save in Word 时,会自动弹出对话框:

Sub FileSave()
    Dim sFlNm As String
    With ActiveDocument
      sFlNm = "Document of " & .Bookmarks("first_name").Range.Text & " " & .Bookmarks("last_name").Range.Text
    End With
    With Dialogs(wdDialogFileSaveAs)
      .Name = sFlNm
      .Show
    End With
End Sub

在 Word 中,若要创建在您选择 Word 命令时自动运行的宏,请执行以下步骤:

  1. 选择开发人员>宏
  2. 将下拉列表中的更改为Word 命令
  3. 选择要重新使用的命令名称。
  4. 将下拉列表中的更改回您正在开发的启用宏的文档或模板。
  5. 单击创建按钮。 使用正确的命令名称在 VBE 中创建了一个新宏。 用您希望宏执行的任何操作填充宏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM