У меня есть список файлов 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()