При попытке консолидировать TXT-файл в Excel я получаю ошибку времени выполнения 1004

Моя цель - экспортировать TXT-файлы в папку и объединить их в один лист Excel, а также получить имя файла и дату сохранения TXT-файлов в отдельном столбце соответственно.

При попытке объединить текстовые файлы в папке Excel с помощью приведенного ниже кода, я получаю ошибку времени выполнения 1004 в .Refresh BackgroundQuery:=True, почему я получаю ошибку?

Sub test()

 Dim wbk As Workbook, wksht As Worksheet
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long

    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub

    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "eBay"
        Exit Sub
    End If

Workbooks.Add
Set wbk = ActiveWorkbook
Set wksht = ActiveSheet

Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
Loop

If xFiles.Count > 0 Then

For I = 1 To xFiles.Count
'On Error Resume Next
    With wksht.QueryTables.Add(Connection:="TEXT;" & xFile, Destination:=Range("$A$1"))
    .Name = xFile
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 65001
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierNone
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=True

    End With

Next
End If

End Sub

ошибка

Есть ли другой простой способ?

1 ответ

Вот исправление спасибо всем за помощь:)

With wksht.QueryTables.Add(Connection:="TEXT;" & xStrPath & xFiles.Item(I), Destination:=Range("$A$1"))
.Name = xFiles.Item(I)
Другие вопросы по тегам