Bronwyn问是否有一种方法可以强制“打开”对话框保持可见状态,以便可以连续打开多个文件。尽管可以使用“打开”对话框同时打开多个文档,但这不是Bronwyn想要做的。

一种解决方案(仅与Word切线相关)是使用文件资源管理器(Windows 10)或Windows资源管理器(Windows的早期版本)

显示文件夹中的文件。打开一个显示所有文档文件的资源管理器窗口。然后,您可以双击文件,或创建一组选择的文件,然后右键单击它们并选择“打开”。该窗口一直可用,您不必担心重复显示“打开”对话框。

如果您希望直接在Word中使用解决方案,只需记住Word是非常可配置的,这意味着您几乎可以更改程序的每个方面。这包括“打开”对话框的行为。您需要做的就是为FileOpen命令创建一个替换,如下所示:

Public Sub FileOpen()

Dim err_handler     On Error GoTo err_handler

With Dialogs(wdDialogFileOpen)

.Name = "."

Do While .Show <> 0             .Name = "."

Loop     End With     Exit Sub

err_handler:

If Err.Number = 5174 Then         MsgBox "You can open only one file at a time.", vbCritical         Resume Next     Else         MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation     End If End Sub

使用此宏后,只要Word显示“打开”对话框,它都会使用“所有文件”作为指定的文件类型。然后,您可以选择一个文件,对话框将再次打开以等待您的下一个选择。如果在对话框上单击“取消”,则命令结束,您可以在Word中开始其他任务。

打开对话框的实现与Word正常显示的实现之间有区别。在Word中,可以在“打开”对话框中创建一个“选择集”,以便可以同时打开多个文件。当使用wdDialogFileOpen对话框时(就像您为Open命令创建自己的替换时一样),一次只能选择一个文件。对于Bronwyn来说,这似乎不是一个大问题,但对于其他用户而言,这可能是一个问题。

如果必须保留一次打开多个文件的功能,则可以执行命令栏控件。但是,在执行命令栏控件时,您无法测试是否有人单击“取消”。因此,您需要另一种摆脱循环的方法。在以下例程中,您可以选择/打开多个文件,但是您还必须响应对话框以退出显示对话框的循环。

Sub GetNewFiles()

Dim Response     Do While Response <> vbNo         CommandBars("Standard").Controls("&Open...").Execute         Response = MsgBox(Prompt:="Open another file?", Buttons:=vbYesNo)

Loop End Sub

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(12357)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: