【问题标题】:Open Excel from Word using FileDialog使用 FileDialog 从 Word 打开 Excel
【发布时间】:2016-06-13 05:17:52
【问题描述】:

我想做的是:

  • 在我的 Microsoft Word 文档中按一个按钮,它将提示我在文件资源管理器中选择一个文档。
  • 选择我的文档,我的 word 文档中的相关字段将被填充。
  • 这将根据文档中的信息(月份)进行填充,并使用 Match 函数在选定的 Excel 文档中搜索正确的行/列并返回值。

我被困在下面代码的FileDialog(msoFileDialogFilePicker) 部分。

出于我文档的目的,我无法输入直接文件路径,文件路径需要取自 FileDialog 函数(或类似函数)。

我也试过GetOpenFilename。我不确定如何做到这一点。我的代码当前打开 FileDialog 并让我选择一个文件,但我无法将文件路径传递到我的 colNum1 行。

我得到的错误是 运行时错误“91”。未设置对象变量或 With Block 变量。

我愿意接受建议,非常感谢任何帮助。

Sub KPI_Button()
'
' KPI_Button Macro
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Dim strFile As String
Dim Doc As String
Dim Res As Integer
Dim dlgSaveAs As FileDialog

Doc = ThisDocument.Name

Set dlgSaveAs = Application.FileDialog(msoFileDialogFilePicker)
Res = dlgSaveAs.Show

colNum1 = WorksheetFunction.Match("(Month)", ActiveWorkbook.Sheets("Sheet1").Range("A2:I2"), 0)

ThisDocument.hoursworkedMonth.Caption = exWb.Sheets("Sheet1").Cells(3, colNum1)

exWb.Close
Set exWb = Nothing
End Sub

【问题讨论】:

    标签: vba excel ms-word


    【解决方案1】:

    尝试指定 Excel 扩展名的对话框:

    Sub GetNames()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Excel files", "*.xls*", 1
    If .Show = True Then
        If .SelectedItems.Count > 0 Then
        'this is the path you need
        MsgBox .SelectedItems(1)
            Else
        MsgBox "no valid selection"
        End If
    End If
    End With
    End Sub
    

    【讨论】:

    • 我已经输入了它,但它不是在屏幕上实际显示路径,而是需要它将电子表格的文件路径传递到上面代码的最后两部分:colNum1 = WorksheetFunction.Match("(Month)", ActiveWorkbook.Sheets("Sheet1").Range("A2:I2"), 0) ThisDocument.hoursworkedMonth.Caption = exWb.Sheets("Sheet1").Cells(3, colNum1)
    • @Krumblebee 这一行为您提供了完整路径 .SelectedItems(1),您可以将其应用于您的函数。
    • 我想打开使用FIleDialog函数时指定的文件。我不需要查看文件路径就可以将其输入到我的代码中。我希望将文件路径传递给我的 VBA 中的一行代码。我需要做的就是使用文件对话框功能打开我选择的文件,然后可以对选定的文件执行我现有的操作。选择的文件总是不同的,所以文件路径总是会改变,这就是为什么我每次都不能输入文件路径的原因。我希望我已经理解了我正在尝试做的事情。感谢您到目前为止的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多