VBA Excel文件打开提示取消错误

gri*_*amp 3 error-handling excel vba file-processing

所以我使用文件打开提示来收集文件名.然后我在后台实例中打开此文件,将信息解析为字典并关闭文件.这很好用.这个代码是:

Application.FileDialog(msoFileDialogOpen).Show
sFullName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Run Code Online (Sandbox Code Playgroud)

如果用户按下取消,这显然是一个可行的方案,我收到以下错误:

Invalid procedure call or argument
Run Code Online (Sandbox Code Playgroud)

我试图将'gather'行更改为:

If Application.FileDialog(msoFileDialogOpen).SelectedItems(1) Then sFullName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Run Code Online (Sandbox Code Playgroud)

然而,这仍然会带来错误.即使禁用警报也会出现错误或"400".任何有关如何制作此弹出窗口或处理它的帮助将不胜感激.

Ale*_* K. 7

您需要检查边界以确定是否选择了任何内容

with Application.FileDialog(msoFileDialogOpen)

    .Show

    if (.SelectedItems.Count = 0) Then
        '// dialog dismissed with no selection
    else
        sFullName = .SelectedItems(1)
    end if
end with
Run Code Online (Sandbox Code Playgroud)