Импорт файла с разделителями в Excel с помощью макроса;Ошибка времени выполнения «1004» - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть список файлов CSV, которые я хочу импортировать в пустую электронную таблицу Excel. Я попытался импортировать один файл, используя код, показанный ниже, но я получаю ошибку времени выполнения:

Run-time error '1004': Application-defined or object-defined error

Ошибка вызывается следующей строкой:

With ActiveSheet.QueryTables.Add(Connection:=strConnexn, Destination:=Range("$A$1"))

Я виделПример StackOverflow в " Импорт файла с разделителями в Excel с помощью макроса (.CommandType = 0) "

Строка кода, в которой мой макрос "subImportIntermediaCSVCallLogs_aaa" кажется моему неосведомленному разуму идентичнымПример StackOverflow;но, очевидно, я ошибаюсь.

Хотя я обычно могу понять vba Word, у меня нет опыта кодирования в Excel vba, и я не знаю, где искать объяснение.

Однажды ячтобы макрос "subImportIntermediaCSVCallLogs_aaa (strCSV_Fullname)" работал, я планирую использовать макрос "subRunMacroOnSeveralCSV_files ()" для импорта набора файлов CSV в одну и ту же электронную таблицу, причем каждый импорт начинается на 4 строки под предыдущим импортом. Пожалуйста, дайте мне знать, если вы считаете, что это неразумно.

Любая помощь будет принята с благодарностью.

Вот мой код:

Sub subImportIntermediaCSVCallLogs_aaa(strCSV_Fullname)
'
    Dim strConnexn As String

    strConnexn = Chr(34) & "TEXT;" & strCSV_Fullname & Chr(34)
    MsgBox strConnexn

    Application.CutCopyMode = False
    With ActiveSheet.QueryTables.Add(Connection:=strConnexn, Destination:=Range("$A$1"))
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileOtherDelimiter = False
        .PreserveFormatting = True       
        .FieldNames = True
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileParseType = xlDelimited
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    Range("A1,1:1048576").Select
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    ActiveCell.SpecialCells(xlLastCell).Select

    ActiveSheet.Cells(ActiveSheet.Rows.Count, Selection.Column).End(xlUp).Select
    ActiveCell.Offset(4, 0).Select

End Sub ' End of subImportIntermediaCSVCallLogs_aaa(strCSV_Fullname)


Sub subRunMacroOnSeveralCSV_files()
    Dim strCSV_Fullname As String
    strCSV_Fullname = "E:\Intermedia\CallHistory\callhistory01.csv"
    strCSV_Fullname = "E:\Intermedia\CallHistory\callhistory02.csv"
    strCSV_Fullname = "E:\Intermedia\CallHistory\callhistory03.csv"
    subImportIntermediaCSVCallLogs_aaa strCSV_Fullname

End Sub ' End of subRunMacroOnSeveralCSV_files()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...