怎样将近百个csv文件导入到ACCESS后汇总再导出到一张excel表中?

怎样将近百个csv文件导入到ACCESS后汇总再导出到一张excel表中?因为excel不能一次性自动导入大量的csv文件,只能用access试试,求大神帮帮忙!用VBA怎么写代码?之前网友有回答:Sub 宏1()Dim ST As Worksheet, P As String, F As StringSet ST = ActiveSheet '汇总的表P = "C:\CSVS\" 'CSV文件所在文件夹,必须以\结尾F = Dir(P & "*.CSV")While F <> ""With Workbooks.Open(P & F) '打开CSV文件'复制CSV文件内容到汇总表ActiveSheet.UsedRange.Copy ST.Cells(ST.UsedRange.Rows.Count + 1, 1).CloseEnd WithF = Dir '寻找下一个文件WendEnd Sub但本人对VBA一窍不通,不太明白作者哪些中文字是作为注释还是作为代码本身使用?我的一大堆的csv文件在D盘的名为 ”下载内容暂存“ 的文件夹内,该文件夹内有个格式xlsx的表格,名称是 ”csv文件汇总“ ,我想把文件夹内的所有csv文件统合到名称是 ”csv文件汇总“ 的一张工作表里面(不是在工作簿内形成新的多张工作表),求根据上述代码修改出正确代码!D:\下载内容暂存

打开D:\下载内容暂存\csv文件汇总.xlsx文件,按ALT+F11,随便双击一个表,粘贴代码,最后如下图,回到EXCEL按ALT+F8运行这个宏即可。

Sub 宏1()

    Dim P As String, F As String

    P = "D:\下载内容暂存\" 'CSV文件所在文件夹,必须以\结尾

    F = Dir(P & "*.CSV")

    While F <> ""

        With Workbooks.Open(P & F) '打开CSV文件

            ActiveSheet.UsedRange.Copy Me.Cells(Me.UsedRange.Rows.Count + 1, 1)

            .Close

        End With

        F = Dir '寻找下一个文件

    Wend

End Sub

追问

每个csv文件里面的内容格式一样,都是7个数据用逗号分开,如“2021.08.26 14:33,46969.29000,46985.90000,46938.61000,46947.61000,54,0”    

我的目标是各csv表只取第二列的数据即前2个逗号包围的数据,    

并让它们i相邻横向并排在一起,只要csv文件名不变,当打开汇总表时自动更新。

请问这个咋做呀?

追答

前面的代码是把结果纵向排列的,追问要求横向排列,代码修改如下:
Sub 宏1()
Dim P As String, F As String, j As Long
P = "D:\下载内容暂存\" 'CSV文件所在文件夹,必须以\结尾
F = Dir(P & "*.CSV")
j = 1
While F ""
With Workbooks.Open(P & F) '打开CSV文件
Me.Cells(1,j) = F
ActiveSheet.Range("B1").ReSize(ActiveSheet.UsedRange.Rows.Count, 1).Copy Me.Cells(2, j)
j=j+1
.Close
End With
F = Dir '寻找下一个文件
Wend
End Sub

追问

竖向排版的代码运行正常,但修改过后的代码运行不了!红色部分改为 While F <> "",但运行后只得到一系列横向排列的csv表名称,在没有其他内容了

追答

一、语法错误是百度吃了不等号,请自行添加,用英文方式输入小于、大于两个符号;
二、只有名称是英文复制B列的缘故,请F8单步调试,看看CSV打开后时候全部内容在一列中;
语句没几行,建议猜测意义和改进方法,一猜就准的,只要愿意。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-15
在弹出框中可以设置导入数据每列的数据格式,也可以设置不导入某列,设置方法:鼠标左键点击下方数据预览中的列,点击后在上方列数据类型进行选择,然后点击完成
第2个回答  2021-09-13
写代码可以,但数据太多了的话,Excel也是装不下的
相似回答