从 CSV 转换为 XLSX 并使用相同的文件名保存

Posted

技术标签:

【中文标题】从 CSV 转换为 XLSX 并使用相同的文件名保存【英文标题】:Convert from CSV to XLSX and save with same file name 【发布时间】:2017-03-23 13:36:08 【问题描述】:

我收到了一系列 CSV 文件,这些文件捆绑在一个文件夹中,该文件夹仅以月份命名。我有代码可以找到它们,打开它们,解析它们,但我无法以我想要的方式保存它们。我的目标是保存为与新格式和解析格式相同的文件名。

Sub OpenCSVs_2()
Dim MyFiles As String, ThisMonth As String, Convert As String
Dim startPath As String
ThisMonth = Format(Date, "mmmm")
startPath = "C:\Users\ME\Desktop\CSV find convert tests\" & ThisMonth & "\"
MyFiles = Dir(startPath & "*.csv")
Convert = Dir(startPath & "*xlsx")

Do While MyFiles <> ""

Workbooks.Open startPath & MyFiles

Call Parse1

ActiveWorkbook.SaveAs Filename:="startPath & Convert",      FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

MyFiles = Dir '<----------------error happens here

Loop

End Sub

上面实际上做了一些事情并创建了一个名为“startPath & Convert”的 xlsm 文件。我确信解决方案就在我面前。

【问题讨论】:

虽然 darnit 不是一个主要的诅咒词,但在写帖子时请尽量保持专业的语气。 【参考方案1】:

与我之前的帖子一样,您将变量放在引号中,然后将其转换为字符串。所以首先,删除 startPath 和 MyFiles 上的引号,然后使用 Replace 函数替换扩展名。我还添加了 Workbook 对象,因为您应该避免使用 Activeworkbook,因为它可能会导致问题。

Sub OpenCSVs_2()
Dim MyFiles As String, ThisMonth As String
Dim startPath As String
Dim wb As Workbook
ThisMonth = Format(Date, "mmmm")
startPath = "C:\Users\ME\Desktop\CSV find convert tests\" & ThisMonth & "\"
MyFiles = Dir(startPath & "*.csv")

Do While MyFiles <> ""

    Set wb = Workbooks.Open(startPath & MyFiles)

    Call Parse1

    wb.SaveAs Filename:=startPath & Replace(MyFiles, ".csv", ".xlsx"), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    MyFiles = Dir

Loop

End Sub

【讨论】:

啊...替换是一个预定义的功能。这行得通...非常感谢。

以上是关于从 CSV 转换为 XLSX 并使用相同的文件名保存的主要内容,如果未能解决你的问题,请参考以下文章

将CSV文件转换为xlsx文件Python

使用 PHP 将 .xlsx 文件转换为 .csv 文件

Python将csv转换为xlsx

JavaScript - 将 CSV 转换为 XLSX(最好不使用库)

如何在前端(TS、React)上将 CSV 转换并下载到 XLSX

如何使用 shell 脚本将 xlsx 文件转换为 csv 文件?