如何用宏把多个EXCEL转化为.CSV格式
多个EXCEL,都是只有一个SHEET1表,如何用宏把这多个EXCEL同时转化为对应的.csv文件。文件名都是有规律:201101.xls,201102.xls,2011...
多个EXCEL,都是只有一个SHEET1表,如何用宏把这多个EXCEL同时转化为对应的.csv文件。文件名都是有规律:201101.xls,201102.xls,201103.xls........求代码,谢谢
展开
4个回答
展开全部
完整的宏代码,请根据你的实际情况,调整xls和csv文件目录位置
Sub XlsToCsv()
Application.ScreenUpdating = False '禁止屏幕刷新
Application.DisplayAlerts = False '禁止弹出文件已存在是否覆盖对话框
Dim strFn, strXls, strCsv As String
strXls = "c:\XLS\" '定义Xls文件存放目录
strCsv = "c:\csv\" '定义csv文件存放目录
strFn = Dir(strXls & "*.xls") '选择Xls文件
开始:
If strFn <> "" Then
Workbooks.Open Filename:=strXls & strFn
ChDir strCsv
ActiveWorkbook.SaveAs Filename:=strCsv & Replace(strFn, ".xls", ""), FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close saveChanges:=False
Else
Shell "Explorer.exe " & strCsv, vbNormalFocus '完成后打开转换好了的文件夹
Application.ScreenUpdating = False '恢复屏幕刷新
Application.DisplayAlerts = False '恢复弹出对话框
Exit Sub
End If
ChDir strXls
strFn = Dir()
GoTo 开始
End Sub
Sub XlsToCsv()
Application.ScreenUpdating = False '禁止屏幕刷新
Application.DisplayAlerts = False '禁止弹出文件已存在是否覆盖对话框
Dim strFn, strXls, strCsv As String
strXls = "c:\XLS\" '定义Xls文件存放目录
strCsv = "c:\csv\" '定义csv文件存放目录
strFn = Dir(strXls & "*.xls") '选择Xls文件
开始:
If strFn <> "" Then
Workbooks.Open Filename:=strXls & strFn
ChDir strCsv
ActiveWorkbook.SaveAs Filename:=strCsv & Replace(strFn, ".xls", ""), FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close saveChanges:=False
Else
Shell "Explorer.exe " & strCsv, vbNormalFocus '完成后打开转换好了的文件夹
Application.ScreenUpdating = False '恢复屏幕刷新
Application.DisplayAlerts = False '恢复弹出对话框
Exit Sub
End If
ChDir strXls
strFn = Dir()
GoTo 开始
End Sub
展开全部
如果只是改后缀名哪用EXCEL
将这些文件放在一个文件夹中,打开记事本
ren *.xls *.csv
另存为---保存类型选所有文件---文件名随便.bat---保存,将这个bat文件和XLS文件放一个文件夹内
运行它就行了 ,
将这些文件放在一个文件夹中,打开记事本
ren *.xls *.csv
另存为---保存类型选所有文件---文件名随便.bat---保存,将这个bat文件和XLS文件放一个文件夹内
运行它就行了 ,
追问
谢谢,您的方法是可以的。只是我后期要把这所有的CSV文件合并成一个csv文件,我是在运行-CMD窗口操作,“copy *.csv combine.csv ” 生成的文件是空的,不能读取,有其他方法吗?
追答
这样合并EXCEL文件肯定不行,生成的文件肯定打不开的 我不知道你所谓的合并是怎么个并发? 1.是否是将所有的excel文档的sheet表放到一个EXCEL文件里?就是生成一个EXCEL文档内含很多sheet表 2.或者是将所有的excel文档的数据放到同一个excel文件里的同一个sheet表中 不管是上述哪一种,在CMD窗口至少我是实现不了的,在EXCEL的宏能实现不过我没试过,当然还得看你是什么情况我再试试
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
录制宏,记录复制表到一个文件的动作,加上循环。最后把文件改成CSV格式。。。
追问
就是循环不会,呵呵。求教,谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
录好宏后,还要加个循环语句才行。
追问
谢谢你,我就是加循环,但出来的文件是空的,没数据。我把代码贴出来,您帮我看下错在哪里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询