【问题标题】:Word VBA: Choose template from Dialog for a new DocumentWord VBA:从对话框中为新文档选择模板
【发布时间】:2014-08-10 22:20:02
【问题描述】:

我的宏将基于现有模板创建一个新文档:

   Documents.Add Template:=strTemplateName, NewTemplate:=False, DocumentType:=0

我希望用户能够从对话框中选择模板“strTemplateName”,但我什至不确定您是否可以使用 Dialogs 属性捕获其名称。你会使用 wdDialogToolsTemplates 还是 wdDialogFileOpen?

【问题讨论】:

    标签: vba templates ms-word


    【解决方案1】:

    回答第二个问题的最简单方法,

    你会使用 wdDialogToolsTemplates 还是 wdDialogFileOpen?

    只是简单地尝试两者,看看哪一个更适合你。良好的老式试验和错误 FTW :)

    实际上,我认为 两者 都不是你想要的。我可能只会使用普通的FileDialog 对话框。

    试试这个:

    Sub test()
    Dim dialog As FileDialog
    Dim strTemplateName as String
    
    Set dialog = Application.FileDialog(msoFileDialogFilePicker)
    dialog.AllowMultiSelect = False
    dialog.Show
    If dialog.SelectedItems.Count = 1 Then
        strTemplateName = dialog.SelectedItems(1)
    Else:
        MsgBox "no file selected!", vbInformation
        Exit Sub
    End If
    
    
    Documents.Add Template:=strTemplateName, NewTemplate:=False, DocumentType:=0
    
    End Sub
    

    【讨论】:

    • 我想我应该明确表示我并不真正了解 Dialogs,这就是为什么反复试验对我不起作用的原因。但是您的其他解决方案正是我正在寻找的。谢谢。
    • 是的,我不太了解 Word VBA——实际上我是通过反复试验来回答这个问题的 :) 我可以看到它们都不允许任何类型的返回值,我从其他应用程序中知道有FileDialogs 允许 允许返回值。看起来那些Application.Dialogs 不是输入法,但它们可以用于其他用途;即,允许用户在宏程序运行时进行一些更改、执行一些操作等。
    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多