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

相关推荐
weitingfu5 天前
Excel VBA 入门到精通(十):实战项目——自动化报表系统开发
ai·信息可视化·自动化·excel·vba·office·报表系统
VBA63377 天前
如何学习VBA之1:初学VBA人员要重视程序文件
vba
VBA63379 天前
VBA高级应用30例应用6 第2部分:利用XML文件修改Excel单元格字符
vba
专注VB编程开发20年9 天前
WPS 2024 Windows版UI用QT5和自研DirectUI-vba,jsa
qt·vba·wps·jsa·directui
Access开发易登软件11 天前
在 Access 中实现 Web 风格 To Do List
前端·数据结构·microsoft·list·vba·access·access开发
weitingfu13 天前
Excel VBA 入门到精通(二):变量、数据类型与运算符
java·大数据·开发语言·学习·microsoft·excel·vba
VBA633716 天前
VBA 64位API声明语句第019讲
vba
VBA633718 天前
VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据
vba
fengyehongWorld20 天前
VBA 操作PowerQuery表格和带名字的表格
excel·vba
Access开发易登软件1 个月前
在 Access 实现标签输入控件:VBA + HTML 混合开发实战
前端·数据库·信息可视化·html·excel·vba·access