3

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

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

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

Invalid procedure call or argument

我试图将“收集”行更改为:

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

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

4

2 回答 2

8

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

with Application.FileDialog(msoFileDialogOpen)

    .Show

    if (.SelectedItems.Count = 0) Then
        '// dialog dismissed with no selection
    else
        sFullName = .SelectedItems(1)
    end if
end with
于 2013-04-09T10:17:07.203 回答
1

你可以使用GetSaveAsFilename

Dim strFileName As String
strFileName = Application.GetSaveAsFilename
If strFileName = "False" Then MsgBox "User cancelled"
于 2013-04-09T10:11:19.270 回答