excel文件保存成CSV

Sub CsvOutput()

Dim strNow As String

Dim csvFile As String

Dim lastRow As String

Dim targetRange As Range

Dim wb As Workbook

Dim fso As Object

strNow = Format(Now, "yyyymmddhhnnss")

csvFile = Application.GetSaveAsFilename(InitialFileName:="XXXXXXCSV_" & strNow & ".csv", FileFilter:="CSV文件(*.csv),*.csv")

If csvFile <> "False" Then

'最后一行的取得

lastRow = Cells(Rows.Count, 2).End(xlUp).Row

'CSV文件范围

Set targetRange = Worksheets(1).Range(Cells(2, 1), Cells(lastRow, 29))

'新建workbook

Set wb = Workbooks.Add

'CSV文件范围拷贝到新workbook

targetRange.Copy wb.Worksheets(1).Range("A1")

'cell内改行删除

wb.Worksheets(1).UsedRange.Replace vbLf, ""

wb.Worksheets(1).UsedRange.Replace vbCr, ""

wb.Worksheets(1).UsedRange.Replace vbCrLf, ""

Set fso = CreateObject("Scripting.FileSystemObject")

'输出的CSV文件存在先删除

If fso.FileExists(csvFile) Then

fso.deleteFile csvFile

End If

'新workbook作为CSV文件输出

wb.SaveAs Filename:=csvFile, FileFormat:=xlCSVUTF8, Local:=True

'新workbook不保存关闭

wb.Close SaveChanges:=False

MsgBox csvFile & "文件已经输出。"

Set fso = Nothing

End If

End Sub

相关推荐
VBA633719 小时前
VBA之Word应用:在Word中,什么是Range对象
vba
LAM LAB14 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba
LAM LAB16 天前
【VBA】Excel实现批量对单元格替换、加粗文字
excel·vba
VBA633723 天前
VBA技术资料MF432:数组排序
vba
VBA63371 个月前
VBA编程经典460句372-420
vba
VBA63371 个月前
VBA编程经典460句321-370
vba
wei10191 个月前
【Excel VBA基础编程】边玩边学:可视化程序开发
excel·vba·自动化工具
VBA63371 个月前
VBA即用型代码手册:自动调整表格大小适应页面Auto Size Table to fit Page
vba
VBA63371 个月前
VBA之Word应用第四章第七节 : 段落Paragraph对象的方法
vba
Access开发易登软件1 个月前
Access 中实现 Web 风格的顶部加载进度条
前端·数据库·vba·access·access开发