如何批量读取csv格式的文件名及文件内容到新的Excel中?

现在有上万个csv文件,名称均是按照“年月日小时分”的规则命名(如1992-1-1-0900.csv、1999-8-1-1400.csv),每个csv文件都是固定格式的表... 现在有上万个csv文件,名称均是按照“年月日小时分”的规则命名(如1992-1-1-0900.csv、1999-8-1-1400.csv),每个csv文件都是固定格式的表格,只是数据列有区别。如何批量读取文件名及某一行的内容,分别放到新的Excel文件中? 展开
 我来答
zzh_abc
2019-08-10 · TA获得超过244个赞
知道小有建树答主
回答量:97
采纳率:57%
帮助的人:33.9万
展开全部
首先肯定要用宏来实现。

可以把要打开的文件放到一个统一目录里,使用宏依次打开并读取数据,然后根据你的逻辑写入新文件中。
下面是个简单例子,测试通过。
读取宏文件和csv文件在一个目录里,宏通过当前程序得到当前目录,从当前目录里依次打开每个文件(当前宏文件跳过),读取每个csv文件第2行,贴到当前宏文件里。
注意运行前只打开宏文件,另外,若需要,手工删除sheet1里存在内容,不了解你具体详细的需求,就做个例子提供一下参考。
Sub zzh_abc()
On Error GoTo out1
Dim Fso As Object
Set Fso = CreateObject("Scripting.FileSystemObject")

Set folder = Fso.GetFolder(ThisWorkbook.Path)
i = 1
For Each f In folder.Files
If InStr(f.Name, ThisWorkbook.Name) = False Then
Filename = ThisWorkbook.Path & "\" & f.Name
Workbooks.Open Filename:=Filename
Rows("2:2").Select 'select row to copy
Selection.Copy
Application.DisplayAlerts = False
Workbooks(2).Close savechanges:=False
'Worksheets("sheet1").Select
Cells(i, 1).Select 'copy by increasing one new line
ActiveSheet.Paste
i = i + 1
End If
Next
Exit Sub

out1:
End Sub
lu_zhao_long
2019-08-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:2603万
展开全部
对于重复且有规律的操作,可以使用 Office 自带的 VBA(Visual BASIC for Application)功能来实现。
也就是说,需要一定的编程工作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyzxh

2019-08-12 · 知道合伙人软件行家
skyzxh
知道合伙人软件行家
采纳数:2623 获赞数:8340
毕业于中科院,硕士,30年工程从业经验。现任公司技术负责。

向TA提问 私信TA
展开全部
需要编写vba程序来完成
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ExcelPower
2019-08-09 · 专业Excel公式图表数据分析VBA
ExcelPower
采纳数:4495 获赞数:11859

向TA提问 私信TA
展开全部
可以, 报价 80
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式