另存为不同的文件类型

时间:2016-01-05 18:23:00

标签: vba csv save

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

这就是我的尝试:

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

但是,它将文件保存为.xlsx.csv(即,名为prices.xlsx的文件保存为price.xlsx.csv) 如何使用不同的文件扩展名保存文件,而不使用.xlsx?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

如果你想让它更安全,如果你的扩展名可能是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%防弹,虽然我很难想到它不会按预期工作的情况。