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

问题描述:

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

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'。 任何帮助如何使这个弹出或处理它将不胜感激。

你可以使用GetSaveAsFilename

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

大,工作。进一步添加了一些代码,以帮助和它的窍门。 – grimchamp 2013-04-09 10:17:09

你需要检查的范围,以确定是否有任何选择

with Application.FileDialog(msoFileDialogOpen) 

    .Show 

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

谢谢你。 我很新vba excel,所以在格式化帮助表示赞赏。 目前我只是因为某些原因真的在我的workbook_open()中使用with block。如果我将来做更多的项目,我应该开始更多地实施它 – grimchamp 2013-04-10 08:05:39