Я пытаюсь настроить макрос vba excel, который работает для сбора данных из всех книг в указанном диапазоне дат. У меня возникают трудности с возможностью извлечения книг, в которых есть две строки заголовков строк. Когда я пытаюсь запустить макрос в этих книгах, поля в наборе записей не заполняются правильной информацией.
Код ранее работал для рабочих книг только с одной строкой заголовка строки (со всеми остальными данными под ним, являющимися числовыми данными), но теперь я сталкиваюсь с трудностями с рабочими книгами, которые имеют две строки заголовка строк. Если я удаляю одну из первых двух строк строк в книге и пытаюсь запустить, макрос работает нормально и поля заполняются правильно. Однако это нереальное долгосрочное решение.
Dim Header As Boolean
Dim rsCon As Object
Dim rsData As Object
Dim szSQL As String
Dim szConnect As String
Dim sDFolder As String
Dim SourceFile As String
Header = True
'Folder that contains several workbooks
sDFolder = "C:\Users\kevin\Desktop\Test"
'Example File from sDFolder
SourceFile = "Data 2019-02-25.csv"
' Create the connection string
szConnect = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=" & sDFolder & ";" & _
"Extensions=asc,csv,tab,txt;"
' workbook level name
szSQL = "SELECT * FROM " & """" & SourceFile & """"
Set rsCon = CreateObject("ADODB.Connection")
Set rsData = CreateObject("ADODB.Recordset")
rsCon.Open szConnect
rsData.Open szSQL, rsCon, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText
If Not rsData.EOF Then
If Header = True Then
TargetRange.Cells(1, 1).CopyFromRecordset rsData
End If
End If
rsData.Close
Set rsData = Nothing
rsCon.Close
Set rsCon = Nothing
SetAttr sDFolder, vbNormal
Приведенный выше код работает для книг с одним заголовком, но поля в rsData не заполняются правильно для книг с двумя заголовками.