我查看过几个帖子,似乎无法找到合适的答案 - 类似,但不是我正在寻找的。
我想要一些代码在特定文件夹中循环遍历一系列csv文件(每次约200个)。它需要将每个这些csv文件的第一行的值导入/复制到一个(主)工作簿。这些csv文件名是数字(例如20140213075458),不应考虑任何不符合此条件的文件(14个字符,仅限数字和FileFormat = csv)。
非常感谢任何指导!
答案 0 :(得分:0)
将Microsoft Scripting Runtime库添加到项目中,并使用Use FileSystemObject
class循环遍历所有文件。您可以使用Like
运算符检查文件名是否符合您的条件。
答案 1 :(得分:0)
我认为this加载项可能对您有所帮助。 RDBMerge用于合并多个Excel工作簿中的数据, 将csv和xml文件放入摘要工作簿中。
答案 2 :(得分:0)
我将概述您需要做的操作。你可以从中工作。
获取每个文件夹中每个文件的文件名:fname = Dir(Your_Folder_Path)
初始化文件读取计数器:i=1
循环浏览文件夹中的所有文件:
Do While fname <> "" 'Loop all files in folder
检查您的条件:
Extension = Split(fname, ".")(Ubound(Split(fname, "."))) 'Extract extension of file
Name = Split(fname, ".")(Ubound(Split(fname, "."))-1) 'Extract name of file without extension
If Extension = "csv" And Len(Name) = 14 And IsNumeric(Name) Then 'Check csv, length of name 14 and numeric name
打开csv,读取第一行并关闭它:
Open Your_Folder_Path & fname For Input As #f1
Line Input #f1, csvFirstLine
Close #f1
将数据放入工作簿:
ActiveSheet.Range("A" & i).Value = csvFirstLine 'Put line in corresponding row
ActiveSheet.Range("A" & i).TextToColumns Comma:=True 'Separate data by comma
i=i+1 'File counter +1
退出ifs并关闭循环:End If
Loop