Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 循环浏览csv的特定文件夹,将每个文件夹的第一行合并到一个工作簿中_Vba_Loops_Csv - Fatal编程技术网

Vba 循环浏览csv的特定文件夹,将每个文件夹的第一行合并到一个工作簿中

Vba 循环浏览csv的特定文件夹,将每个文件夹的第一行合并到一个工作簿中,vba,loops,csv,Vba,Loops,Csv,我浏览了好几篇帖子,似乎找不到合适的答案——类似,但不完全是我想要的 我想要一些代码,循环通过一系列csv文件(每次约200个)在一个特定的文件夹中。它需要将每个csv文件的第一行的值导入/复制到一个(主)工作簿中。这些csv文件名是数字的(例如20140213075458)。不符合此标准的任何文件(14个字符,仅限数字和FileFormat=csv)都不应考虑 任何指导都将不胜感激 将Microsoft脚本运行时库添加到项目中,并使用FileSystemObject类循环浏览所有文件。您可以使

我浏览了好几篇帖子,似乎找不到合适的答案——类似,但不完全是我想要的

我想要一些代码,循环通过一系列csv文件(每次约200个)在一个特定的文件夹中。它需要将每个csv文件的第一行的值导入/复制到一个(主)工作簿中。这些csv文件名是数字的(例如20140213075458)。不符合此标准的任何文件(14个字符,仅限数字和FileFormat=csv)都不应考虑


任何指导都将不胜感激

将Microsoft脚本运行时库添加到项目中,并使用
FileSystemObject
类循环浏览所有文件。您可以使用
Like
操作符来检查文件名是否符合您的条件。

我认为加载项肯定会对您有所帮助。 RDBMerge用于合并多个Excel工作簿中的数据,
将csv和xml文件转换为摘要工作簿。

我将概述您需要执行的操作。你可以从那开始工作

  • 获取每个文件夹中每个文件的文件名:
    fname=Dir(您的文件夹路径)

  • 初始化文件读取计数器:
    i=1

  • 循环浏览文件夹中的所有文件:
    Do While fname”“”循环文件夹中的所有文件

  • 检查您的状况:

    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


  • 我想要一些在特定文件夹中循环浏览一系列csv文件(每次约200个)的代码。
    这句话会让人大吃一惊。因此,如果您在编码方面有任何尝试,请在此处发布代码。如果可以提供示例数据(不是实际数据,而是它的副本),也会更好。