【问题标题】:How to make a macro that allows the user to choose and open a word file如何制作允许用户选择和打开word文件的宏
【发布时间】:2014-05-21 06:28:11
【问题描述】:

我有一个 Excel 文件,我想在其中包含一个宏,它允许用户选择任何 Word 文件,然后打开这个选定的文件。这可能吗?

我可以知道实现目标的正确方法是什么吗?

【问题讨论】:

  • 这可能对support.microsoft.com/kb/161286有帮助
  • 正确的方法是尝试一些东西,向我们展示您的尝试,并询问您遇到的任何具体问题。
  • @Jean-FrançoisCorbett 我很确定你能够理解我的意思。

标签: excel vba ms-word openfiledialog


【解决方案1】:

您确实不是那么具体,但我想您的 Excel 单元格中列出了所有文档的名称。在该单元格的 OnClick 事件中,您可以像这样打开一个 word 文档:

Sub openWordDocument()

    Set wordapp = CreateObject("word.Application")  
    wordapp.documents.Open "C:\Documents\blablabla" & ActiveCell.Value
    wordapp.Visible = True

End Sub

您必须将保存 Word 文件的路径和该特定文件的名称(我假设您在单元格中写入)结合起来。

如果您需要其他内容,请说明...

【讨论】:

  • 我的 excel 文件中有一个宏,可以将我在 excel 文件中的所有表格粘贴到 MS word 模板上的特定书签中。我能想出的代码是我选择文件的地方。问题是用户可能想要更新这个模板。在这种情况下,我需要宏代码至少给用户一个对话框,其中包含目录中的文件列表......
  • 我找到了这个小指南,您可以使用它来获取目录中的所有文件:excelexperts.com/vba-tips-list-files-in-a-folder
  • 如果你不想直接在你的单元格中,那么你应该创建一个用户窗体。使用 ListBox 或 ListView 之类的控件,您可以创建该特定目录中所有文件的列表。
  • 也感谢您的帮助,@oHoodie。我得到的另一个答案已经解决了我的问题:)
【解决方案2】:

要选择文件,您可以使用 Excel 应用程序的.GetOpenFilename 方法。
该方法返回所选文件的完整路径。

Dim oWFile As String
oWFile = Application.GetOpenFilename("Word File, *.docx")

现在要打开文件,您需要获取/创建 Word 实例。
这意味着您必须将 Word 绑定到 Excel。以下示例

Dim oWApp As Word.Application
'~~> get instance if already existing
On Error Resume Next
Set oWApp = GetObject(, "Word.Application")
On Error GoTo 0
'~~> create it otherwise
If oWApp Is Nothing Then Set oWApp = CreateObject("Word.Application")
'~~> make sure it is visible
oWApp.Visible = True
'~~> Open the word file using the grabbed/created Word Application Object
'~~> and the full file path we get using the .GetOpenFilename method
oWApp.Documents.Open oWFile

我在您需要引用 Microsoft Word 对象库的地方使用了早期绑定。
为此,在 VBE 中转到工具 > 参考并选择
Microsoft Word 14.0 对象库(适用于 office 2010)。
数量因 Office 版本而异。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
相关资源
最近更新 更多