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

相关推荐
yivifu2 天前
Word VBA中的Collapse方法详解
word·vba·collapse
专注VB编程开发20年5 天前
JSA变成类似vba环境给第三方软件集成IDE功能,脚本功能
ide·microsoft·node.js·vba·wps·vb6·jsa
林月明7 天前
【VBA】自动设置excel目标列的左邻列格式
开发语言·excel·vba·格式
Access开发易登软件18 天前
Access调用Azure翻译:轻松实现系统多语言切换
后端·python·低代码·flask·vba·access·access开发
专注VB编程开发20年1 个月前
EXCEL VBA-从X行复制数据插入到Y_Z行
excel·复制数据·vba·插入数据·函数优化
专注VB编程开发20年1 个月前
VB6.0找不到该引用word,excel“Microsoft Excel 16.0 Object Library”解决方法
word·excel·vba·vsto
林月明1 个月前
【VBA】点击按钮,实现将Excel表A数据按格式填入表B
excel·vba
专注VB编程开发20年1 个月前
专业VBA代码优化服务邀约‌,OFFICE excel计算优化,wrod报表生成
vba·vba优化
专注VB编程开发20年1 个月前
VBA ADO使用EXCEL 8.0驱动读取 .xlsx 格式表格数据-有限支持
excel·vba·ado·excel 8.0·ace.oledb
yivifu1 个月前
使用VBA辅助编辑出具有完美导航功能的Word长文档
word·办公软件·vba