取消选择txt文件的问题

问题描述 投票:0回答:1

我想使用按钮将txt文件导入Excel。我有一个对话框来选择文件夹名称并显示用户选择的文件夹的名称。

如果用户选择取消,则由于类型不匹配而发生错误。我已将变量声明为VARIANT

查看代码:

Sub ImportTXTFiles()
    Dim fso As Object
    Dim xlsheet As Worksheet
    Dim qt As QueryTable
    Dim txtfilesToOpen As Variant, txtfile As Variant

    Application.ScreenUpdating = False
    Set fso = CreateObject("Scripting.FileSystemObject")

    txtfilesToOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.txt), *.txt", _
                  MultiSelect:=True, Title:="Text Files to Open")
    If txtfilesToOpen = "False" Then
            Exit Sub
    End If
        For Each txtfile In txtfilesToOpen
                ' FINDS EXISTING WORKSHEET
                For Each xlsheet In ThisWorkbook.Worksheets
                    If xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "") Then
                        xlsheet.Activate
                        GoTo ImportData
                    End If
                Next xlsheet

                ' CREATES NEW WORKSHEET IF NOT FOUND
                Set xlsheet = ThisWorkbook.Worksheets.Add( _
                                     After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
                xlsheet.Name = Replace(fso.GetFileName(txtfile), ".txt", "")
                xlsheet.Activate
                GoTo ImportData

我的问题是如何在这里处理此异常

If txtfilesToOpen = "False" Then
            Exit Sub
    End If

如果用户取消选择,而变量被声明为变量。

提前感谢。

excel vba
1个回答
1
投票

也许使用此辅助功能将为您提供帮助:

Option Explicit
Sub Test()

    Dim txtfilesToOpen As String
    txtfilesToOpen = GetFile

End Sub
Private Function GetFile() As String
    Dim fldr As FileDialog
    Set fldr = Application.FileDialog(msoFileDialogFilePicker)
    With fldr
        .Title = "Text Files to Open"
        .AllowMultiSelect = False
        If .Show <> -1 Then
            MsgBox "No file was picked. Please run the macro again."
            End
        End If
        GetFile = .SelectedItems(1)
    End With
End Function

如果用户未选择文件,则会弹出MsgBox,警告用户,然后完成整个过程。请注意,此过程一次仅适用于一个选定的项目。如果您需要选择多个文件夹,请考虑使用文件夹选择器。

© www.soinside.com 2019 - 2024. All rights reserved.