另存为不同的文件类型
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% 防弹的,尽管我正在努力思考它无法按预期工作的情况。
我想让我的宏能够将 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% 防弹的,尽管我正在努力思考它无法按预期工作的情况。