前言
在日常工作中大家很多时候需要把Excel格式的文件转成txt或者csv格式的文件,比如:大家在用Python或者R语言读取文件的时候,往往发现txt和csv格式的文件是最好读取的,而Excel类型的文件是读取是很麻烦的。虽然R语言里面有很多处理Excel文件的Package(相关的包:RODBC、xlsx、openxlsx、gdata、readxl),可以读取Excel类型文件,但是我想肯定还是txt和csv读取数据比较简单一些。用VBA去操作Excel是它的专长,下面给大家演示如何批量把xlsx类型文件转成txt或者csv类型的文件。
数据准备
下面是需要处理的10份Excel文件,后缀是xlsx类型,这里会把他们批量处理txt文件
数据处理
1)首先新建一个存储vba脚本的xlsm文件
2)新建模块,在模块里面编写如下脚本
‘处理成txt类型Sub getTXT()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim i%, file As Variant, path$Dim data As Workbook’这里用GetOpenFilename弹出一个多选窗口,选中我们要转化成csv的xlsx文件,file = Application.GetOpenFilename(MultiSelect:=True)’用LBound和UBoundFor i = LBound(file) To UBound(file)
Workbooks.Open Filename:=file(i)
Set data = ActiveWorkbook
path = data.path
‘这里设置要保存在目录下面的csv文件夹里,之后可以自己调 ‘参考了里面的第一种方法 On Error Resume Next
VBA.MkDir (path & “\txt”)
With data
.SaveAs path & “\txt\” & Replace(data.Name, “.xlsx”, “.txt”), xlUnicodeText
.Close True
End WithNext i’弹出对话框表示转化已完成,这时去相应地方的csv里查看即可MsgBox “已转换了” & (i – 1) & “个文档”Application.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub
3)执行上段脚本,很快就批量转换成功,结果如下
结语
通过上面的方法可以快速将xlsx类型的文件转成txt类型的文件,想必在后期的数据读取方面,会轻松很多。另外,Application.GetOpenFilename(MultiSelect:=True)这段语法还可以实现对自己选择的文件进行处理,这样就可以很随心所欲的进行类型转换了。