我有以下代码,旨在将多个csv文件转换为VBA中的单个数组。除了一部分,代码完美无缺。
这很好用:
strSQL = vbNullString
For i = 2012 To 2014
If strSQL <> vbNullString Then strSQL = strSQL & " UNION ALL "
strSQL = strSQL & "SELECT *, " & i & " as Jahr FROM Data_" & i & ".txt"
Next i
strSQL = strSQL & ";"
Debug.Print strSQL
Set RS = cn.Execute(strSQL)
rsArr = Application.WorksheetFunction.Transpose(RS.GetRows)
RS.Close
现在这是制造麻烦的部分:
strSQL = strSQL & "SELECT *, " & i & " as Jahr FROM Data_" & i & ".txt"
确切地说,麻烦只在那一行:
Select *
我想在col1
添加一列,因为我在.csv文件中没有标题。解决方案可以是双重的,或者:
- 列名是什么?我试过Column 1
和Select *
,但无济于事。
- 如何在ReDim dataArr(1 To (UBound(rsArr)) / 2, 1 To 3)
For j = LBound(rsArr) To UBound(rsArr) Step 2
yearArr = Split(rsArr(j + 1, 1), vbTab)
dataArr(1 + Int(j / 2), 1) = Left(rsArr(j, 1), 5) * 1
dataArr(1 + Int(j / 2), 2) = yearArr(14)
dataArr(1 + Int(j / 2), 3) = i
Next j
Set cn = Nothing
End Sub
?
再次正常工作:
(?=^([^\r\n]{0,10}(\r?\n|$)))[\s\S]{1,30}