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

相关推荐
wuchunyu0024 小时前
VBA 行内容相同时字体变灰
vba
VBA63374 天前
VBA 64位API声明语句第025讲
vba
Access开发易登软件7 天前
Access 导入 Markdown 表格:把文档里的数据写进表
前端·html·vba·markdown·access开发
zhongwei22813 天前
vba将一个文件夹的内容复制到另外一个文件夹的函数,若存在则是否覆盖的参数。复制前检查源文件夹是否存在。若目标文件夹不存在,则新建
前端·vba
Access开发易登软件22 天前
Access 复杂业务计算,SQL 写在 VBA 还是存储过程?
microsoft·vba·access·access开发
SunnyDays10111 个月前
如何使用 Python 添加和编辑 Excel VBA 宏(无需安装 Excel)
开发语言·python·excel·vba
taller_20001 个月前
【005】PiE 与传统 VBA 的核心区别
python·vba·pie·py
VBA63372 个月前
VBA密匙暗码加密技术
vba
VBA63372 个月前
VBA代码加密解决方案目录及说明
vba
VBA63373 个月前
如何学习VBA之2.1.3 VBA的错误处理
vba