我想让我的宏能够在运行它时将xlsx文件以完全相同的名称保存为csv。
这就是我的尝试:
ActiveWorkbook.saveas Filename:=ActiveWorkbook.Path & "\" & _
ActiveWorkbook.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
但是,它将文件保存为.xlsx.csv(即,名为prices.xlsx的文件保存为price.xlsx.csv) 如何使用不同的文件扩展名保存文件,而不使用.xlsx?
答案 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%防弹,虽然我很难想到它不会按预期工作的情况。