如何使用VBA读取CSV文件中的行数和列数

我有超过100个CSV /文本文件(大小在1MB到1GB之间)。 我只需要为每个csv文件创build一个Excel工作表,提供:

  • 列的名称
  • 列的types即数字或string
  • 每列中的logging数
  • 最小值和最大值以及每列的长度

所以在一张纸上的输出会是这样的(我不能在这里粘贴表格图像,因为我是新的在这个网站,所以请考虑以下虚拟表格作为Excel表):

ABCDEFG 1 Column_name Type #records min_value max_value min_length max_length 2 Name string 123456 Alis Zomby 4 30 3 Age numeric 123456 10 80 2 2 

是可以为此创build任何VBA代码? 我在初学者阶段,所以如果任何专家可以帮助我在代码方面,将是非常有益的。 谢谢!!!

您可以尝试为此编写复杂的VBA文件和string处理代码; 我的build议是:不要。

更好的方法是询问: “还有哪些工具可以读取csv文件?

这是制表数据,文件相当大。 实际上,应该比使用电子表格阅读要大:它是数据库工作,最好的工具包是使用MIN()MAX()和COUNT()函数来聚合数据的SQL查询。

Microsoft Access有一套很好的“外部数据”工具,可以读取固定宽度的文件,如果使用“链接数据”而不是“导入表”,则可以使用SQL查询读取文件,而无需导入所有这些文件千兆字节转换为Access .mdb或.accdb文件。

在MS-Access之外,您正在使用ADODB数据库对象(Microsoft Active-X数据对象)和schema.ini文件查看中级到高级的VBA。

您的文本文件schema.ini文件的链接在这里:

 http://msdn.microsoft.com/en-us/library/ms709353%28v=vs.85%29.aspx 

…然后,您将继续创build一个ADODB数据库“连接”对象,将文件夹中的文本文件视为“表”,并编写代码以扫描文件名并构buildSQL查询。 所有使用ADO文本文件驱动程序的经验丰富的开发人员都相当简单。

我不能提供比这些一般提示更具体的东西 – 也不能像代码示例 – 因为这是一个相当复杂的任务,并不是一个真正的Excel-VBA任务; 除了在电子表格中显示结果的最后一步之外,这是一个数据库工具最好的编程任务。

这不是一个初学者作为教学练习的任务,它需要很多不熟悉的概念和技巧,直到它们被分解成一系列结构化的单独教程之后,才会有所不为。