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

时间:2013-04-09 09:55:40

标签: excel vba error-handling file-processing

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

Application.FileDialog(msoFileDialogOpen).Show
sFullName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)

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

Invalid procedure call or argument

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

If Application.FileDialog(msoFileDialogOpen).SelectedItems(1) Then sFullName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)

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

2 个答案:

答案 0 :(得分:7)

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

with Application.FileDialog(msoFileDialogOpen)

    .Show

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

答案 1 :(得分:1)

您可以使用GetSaveAsFilename

Dim strFileName As String
strFileName = Application.GetSaveAsFilename
If strFileName = "False" Then MsgBox "User cancelled"