多语言展示
当前在线:1858今日阅读:145今日分享:20

利用宏自动分列CSV文件

CSV文件格式简单的纯文本文件每行相当于一条记录,使用分号、逗号、Tab等分割字段的纯文本数据库文件,具备很强的开放性,因此很多仪器记录的数据都是以CSV格式保存。CSV的所有数据在一个单元格不便操作,这样必定要将CSV文件数据进行分列,然后提取目标数据。
工具/原料

Excel 2007

方法/步骤
1

单一的CSV文件分列的过程:打开CSV文件-选中数据第一列-数据-分列-下一步-分号-完成(1-5)。

2

CSV文件的分列过程就是这样的,如果几十个甚至是上百个CSV都需要分列,这样一个个打开岂不是很花费时间,怎么才能让所有的CSV文件自动分列呢?这里就用到了宏。把所有的Excel放到同一个文件夹中,并且新建一个Excel。

3

启用开发工具

4

编辑VBA复制以下代码到VBA中!Sub Macro1()'' Macro1 Macro''ChDir 'C:\Users\Administrator\Desktop\CSV文件自动分列'Dim sDir As StringDim curdir As Stringcurdir = 'C:\Users\Administrator\Desktop\CSV文件自动分列'sDir = Dir(curdir & '\*.csv')While Len(sDir)Workbooks.Open Filename:=curdir & '\' & sDirDim temp As Stringtemp = Left(sDir, Len(sDir) - 4)Columns('A:A').Select    Selection.TextToColumns Destination:=Range('A1'), DataType:=xlDelimited, _        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _        ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _        (20, 1), Array(21, 1)), TrailingMinusNumbers:=True    Range('A1').Select    ActiveWorkbook.SaveActiveWorkbook.SaveAs Filename:=curdir & '\' & temp & '.xls', _FileFormat:=xlExcel8, Password:='', WriteResPassword:='', _ReadOnlyRecommended:=False, CreateBackup:=FalseActiveWorkbook.ClosesDir = DirWendEnd Sub

5

自动分列

推荐信息