VBA 自动转化sheet到csv文件

代码思路

  1. 打开指定的工作簿。
  2. 访问指定的工作表。
  3. 复制该工作表到一个新的工作簿。
  4. 将新工作簿保存为CSV格式。
  5. 关闭所有打开的工作簿,不保存任何改动。
Sub SaveSheetAsCSV(workbookPath As String, sheetName As String, savePath As String)
    Dim srcWorkbook, newWorkbook As Workbook
    Dim srcWorksheet As Worksheet

    ' 打开源工作簿
    Set srcWorkbook = Workbooks.Open(workbookPath, ReadOnly:=True)
    
    ' 获取指定的工作表
    Set srcWorksheet = srcWorkbook.Sheets(sheetName)
    
    ' 复制该工作表到新工作簿
    srcWorksheet.Copy
    Set newWorkbook = ActiveWorkbook

    ' 保存新工作簿为CSV
    Application.DisplayAlerts = False
    newWorkbook.SaveAs Filename:=savePath, FileFormat:=xlCSV
    newWorkbook.Close SaveChanges:=False
    Application.DisplayAlerts = True

    ' 关闭源工作簿,不保存更改
    srcWorkbook.Close SaveChanges:=False

    ' 提示信息
    MsgBox "工作表已成功保存为CSV: " & savePath
End Sub
  • 调用这个宏,传入适当的参数。例如:
Call SaveSheetAsCSV("C:\path\to\your\workbook.xlsx", "Sheet1", "C:\path\to\output.csv")

其中,C:\path\to\your\workbook.xlsx 是Excel工作簿的路径,Sheet1 是要保存为CSV的工作表名称,C:\path\to\output.csv 是CSV文件要保存的路径。

这种方法可以确保原始的Excel文件不会被修改或另存为其他格式,同时满足将特定工作表导出为CSV的需求。

增加一个条件:确保在将工作表保存为CSV文件时只包含数值

Sub SaveSheetAsCSVWithValuesOnly(workbookPath As String, sheetName As String, savePath As String)
    Dim srcWorkbook, newWorkbook As Workbook
    Dim srcWorksheet, newWorksheet As Worksheet

    ' 打开源工作簿
    Set srcWorkbook = Workbooks.Open(workbookPath, ReadOnly:=True)
    
    ' 获取指定的工作表
    Set srcWorksheet = srcWorkbook.Sheets(sheetName)
    
    ' 创建新工作簿并设置新工作表
    Set newWorkbook = Workbooks.Add
    Set newWorksheet = newWorkbook.Sheets(1)
    
    ' 复制值到新工作簿
    For Each cell In srcWorksheet.UsedRange
        newWorksheet.Cells(cell.Row, cell.Column).Value = cell.Value
    Next cell

    ' 保存新工作簿为CSV
    Application.DisplayAlerts = False
    newWorkbook.SaveAs Filename:=savePath, FileFormat:=xlCSV
    newWorkbook.Close SaveChanges:=False
    Application.DisplayAlerts = True

    ' 关闭源工作簿,不保存更改
    srcWorkbook.Close SaveChanges:=False

    ' 提示信息
    MsgBox "工作表已成功保存为CSV(仅包含数值): " & savePath
End Sub
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值