首页 > 解决方案 > Excel 2010 VBA:设置使用 msoFileDialogOpen 打开的工作簿时出现错误 91

问题描述

我在这里和那里阅读了有关 FileDialogOpen 和错误 91 的信息,我知道我有一个变量声明问题,但无法弄清楚代码中出了什么问题

Dim Ex As Excel.Application
Dim wb As Workbook
Dim openDialog As Office.FileDialog
Dim filename As String

Set openDialog = Application.FileDialog(msoFileDialogOpen)
With openDialog
    .Filters.Clear
    .Filters.Add "Excel Files", "*.xlsx"
    .AllowMultiSelect = False
    .InitialFileName = "Path_to_open"
    .Title = "Sélectionnez le fichier"
End With

If openDialog.Show = False Then
    MsgBox "Impossible de mettre à jour sans le fichier", vbOKOnly, "ERREUR"
    Exit Sub
End If

filename = openDialog.SelectedItems(1)
Workbooks.Open (filename)
filename = Mid(filename, 4, Len(filename) - 1)
Set wb = Ex.Workbooks.Open(filename, True, False)

错误 91 发生在我设置 wb 的最后一行,稍后我需要在代码中使用它来进行工作簿计算。其余代码运行顺畅。

标签: excelvba

解决方案


将行更改为:

Set wb = Workbooks.Open(filename, True, False)


Set wb = Ex.Workbooks.Open(filename, True, False)不起作用,因为仅在Ex此处声明,但未在此处初始化 - Dim Ex As Excel.Application


推荐阅读