Как я могу импортировать месяц CSV-файлов (с именем даты) в Excel через VBA?
Мне нужно загрузить месяц CSV-файлов в Excel для анализа через VBA. Каждый день месяца представляет собой отдельный файл с именем даты (ГГГГММДД).
В настоящее время я могу загрузить два файла, созданные двумя разными обстоятельствами, A и B, используя
With ActiveSheet.QueryTables.Add(Connection:=Full_F_Name_A, _
Destination:=Range("$H$4"))
Я использую цикл, чтобы изменить A и B (и пункт назначения). Я не понял, как увеличить дату. Я использую поле ввода, чтобы получить дату первого файла в месяце.
F_Name = InputBox("Enter name of first data file eg YYYYMMDD, target=H4, EG4")
Любая помощь будет великолепна, так как я застрял ... и начинающий.
ОК ОК, см. Код VBA ниже. Полученная ошибка времени выполнения '3001' Аргументы имеют неправильный тип, находятся за пределами допустимого диапазона или конфликтуют друг с другом. Отладчик указывает на ".cursorlocation = aduseclient " линия. Возможно, на моем компьютере отсутствует какое-либо программное обеспечение. Вступительное видео на сайте ADO больше не существует, поэтому я не видел вступления. Я попробую другой способ, которым я знаю, просто открыть файлы и выгрузить их в Excel, пока я жду дальнейших советов.
Sub Month_wdata_import()
Set cN = CreateObject("ADODB.Connection")
Set rS = CreateObject("ADODB.Recordset")
Dim sDate As String
Dim sDataPath As String
Dim i As Integer
Dim mMax As Integer
sDataPath = Worksheets("D&L").Cells(1, "G").Value ' values located in 2nd sheet of workbook
mMax = Worksheets("D&L").Cells(1, "D").Value 'values located in 2nd sheet of workbook
For i = 1 To mMax
sDate = "A_" + CStr(Worksheets("D&L").Cells(1 + i, "A").Value) ' looping through list of dates in sheet
With cN
.cursorlocation = aduseclient
.CursorType = adopenstatic
.LockType = adLockreadonly
.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sDataPath & ";" & _
"Extended Properties=""text; HDR=Yes; FMT=Delimited; IMEX=1;""")
End With
With rS
.ActiveConnection = cN
.Source = "select * from data_" & sDate & "_.csv"
.Open
End With
Next
Range("A1").CopyFromRecordset rS
End Sub