用VB如何将excel批量转换成csv格式?

来源:百度知道 编辑:UC知道 时间:2024/05/11 15:48:15
比如我有一个EXCEL文件,里面有3个sheets(sheet1,sheet2,sheet3),我要把这三个sheets转变成三个CSV文件(sheet1.csv,sheet2.csv,sheet3.csv)
用VB怎么实现呀,为什么我下面的代码生成的CSV文件打开是不能用呀?

Dim ExlApp As Object
Dim ExlBook As Object
Dim ExlSheet As Object

Set ExlApp = CreateObject("Excel.Application")
Set ExlBook = ExlApp.Workbooks.Open("D:\excel\VK.xls")

ExlBook.Sheets(1).Select
ExlApp.ActiveWorkbook.SaveAs "D:\excel\sheet1.csv", FileFormat:=xlCSV

ExlBook.Sheets(2).Select
ExlApp.ActiveWorkbook.SaveAs "D:\excel\sheet2.csv", FileFormat:=xlCSV

ExlBook.Sheets(3).Select
ExlApp.ActiveWorkbook.SaveAs "D:\excel\sheet3.csv", FileFormat:=xlCSV

大家麻烦给个规范的代码?

saveas方法可以被两种对象调用,分别是workbook和worksheet。你的意思应该是调用worksheet,但代码中写成了workbook。所以你知道问题出在哪里了?

Attribute VB_Name = "模块1"
2 Sub Macro1()
3 Attribute Macro1.VB_Description = " "
4 Attribute Macro1.VB_ProcData.VB_Invoke_Func = " \n14"
5 '
6 ' Macro1 Macro
7 ' 宏由 Eric yang 录制,时间:
8 '
9
10 '
11 ChDir "D:\"
12
13 cDir = "D:\"
14
15 Do While True
16
17 FName = InputBox("请输入要转换的文件名:", "转换到CSV")
18
19 If FName = "" Then
20 Exit Sub
21 End If
22
23 Workbooks.Open Filename:=cDir & FName & ".xls"
24
25 ActiveWorkbook.SaveAs Filename:=cDir & FName & ".csv", FileFormat:=xlCSV, _
26 CreateBackup:=False
27