我有一个简单的Word宏,它显示了旧的“打开”对话框。
Sub LegacyOpen()
DoEvents
Dialogs(wdDialogFileOpen).Show
End Sub
我现在正在尝试使其在特定文件夹中打开。 “ C:\ Users \ Paul Schroeter \ Documents \ Microsoft Word文档”。 大约一个小时后,我没有找到宏参数或如何使它执行我想要的操作的示例。
如果您想知道为什么需要这样做,这是因为每次我在旧版“打开”对话框中使用“搜索文档”时,它将“打开”对话框路径重置为“ C:\ Users \ Paul Schroeter \ Documents”,即令我发疯,因为然后我必须将其改回到实际上保留我的Word文档的文件夹。
答案 0 :(得分:1)
许多内置的Word对话框具有与对话框中的控件/设置的 some 相对应的“对话框框参数”。可以找到列表here。这些不是Intellisense的一部分,而是后期绑定到对象模型中。开发人员需要知道它们的存在以及如何查找和使用它们。
这些内置参数之一是从“文件/打开”对话框中设置/读取文件全名。在VBA中,参数通常在With
块中使用。将参数放在Show
或Display
方法之前,会在向用户显示对话框之前执行设置。如果将其放置在方法之后,则将其用于读取用户的选择。
Sub WordFileOpen()
Dim dlg As Word.Dialog
Dim sPath As String
Set dlg = Application.Dialogs(wdDialogFileOpen)
sPath = "C:\Users\Paul Schroeter\Documents\Microsoft Word Documents"
With dlg
.Name = sPath
.Show
End With
End Sub
答案 1 :(得分:0)
如果您考虑的内容与Dialogs
集合不同,则可以使用FileDialogs
属性。这是工作示例:
Sub OtherWindowType()
Dim FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.AllowMultiSelect = False
.InitialFileName = "c:\" '...your path here
.Show
End With
'if you want to open the file...
If FD.SelectedItems.Count > 0 Then
Documents.Open FD.SelectedItems(1)
End If
End Sub