另存为不同的文件类型

Save as different file type

我想让我的宏能够将 xlsx 文件另存为 csv 文件,当 运行 它时名称完全相同。

这是我试过的:

ActiveWorkbook.saveas Filename:=ActiveWorkbook.Path & "\" & _
    ActiveWorkbook.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False

但是,它将文件保存为 .xlsx.csv(即名为 prices.xlsx 的文件保存为价格。xlsx.csv) 如果没有 .xlsx,如何使用不同的文件扩展名保存文件?

Filename := ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name,".xlsx", ".csv")

如果你想让它更安全,万一你的扩展名可能是 xls、xlsm、xlsb,你可以这样做:

Dim parts As Variant

parts = Split(ActiveWorkbook.Name, ".")
parts(UBound(parts)) = "csv"

ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & _
    Join(parts, "."), FileFormat:=xlCSV, CreateBackup:=False

它可能不是 100% 防弹的,尽管我正在努力思考它无法按预期工作的情况。