使用FileDialog从Word打开Excel

时间:2016-06-13 05:17:53

标签: excel vba excel-vba ms-word

我想做的是:

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

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

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

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

我得到的错误是运行时错误' 91'。对象变量或未设置块变量。

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

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

1 个答案:

答案 0 :(得分: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