Excel 与WorkBooks.OpenText命令相关的错误处理

Excel 与WorkBooks.OpenText命令相关的错误处理,excel,vba,Excel,Vba,我使用的是一个标准的Workbooks.OpenText函数,但是当我点击cancel时,它会调试到我的代码中,这是我不想要的。相反,我需要一个错误处理程序,这样,如果我点击“取消”,就会出现一个错误框,说明“未选择任何文件”。我不知道如何在一个钩子里识别这个OpenText被取消了 Set myfile = Application.FileDialog(msoFileDialogFolderPicker) Workbooks.OpenText Filename:=myfile, DataT

我使用的是一个标准的Workbooks.OpenText函数,但是当我点击cancel时,它会调试到我的代码中,这是我不想要的。相反,我需要一个错误处理程序,这样,如果我点击“取消”,就会出现一个错误框,说明“未选择任何文件”。我不知道如何在一个钩子里识别这个OpenText被取消了

 Set myfile = Application.FileDialog(msoFileDialogFolderPicker)
 Workbooks.OpenText Filename:=myfile, DataType:=xlDelimited, 
 Origin:=xlWindows, Other:=True, OtherChar:=","
您可以这样做:

Sub MySub()
    Dim fd As FileDialog
    Dim vrtSelectedItem As Variant

    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        ' TODO configure file dialog
        ' .AllowMultiSelect = ???
        ' .Filters = ???
        ' ...

        If .Show = -1 Then
            ' TODO code to handle FileDialog OK button
            ' Depending on settings user may be able to select multiple items
            For Each vrtSelectedItem in .SelectedItems
                Debug.Print vrtSelectedItem 
                ' Workbooks.OpenText Filename:=vrtSelectedItem, ...
            Next vrtSelectedItem 
        Else
            ' TODO code to handle FileDialog Cancel button
            Debug.Print "user hit cancel"
        End If
    End With

    Set fd = Nothing
End Sub

希望这有帮助

我不明白“…当我点击“取消”时,它会被调试到我的代码中…”。当我使用
OpenText
时,文件打开,没有机会取消。oops;我添加了前一行,它打开了一个文件对话框。基本上,在标准Excel文件对话框中,当我点击cancel时,它会调试到程序中。我希望用户在点击文件对话框“打开文件”Excel选项的“取消”时看到一条错误消息。