VBA写入CSV文件而不是写入XCSV文件

时间:2020-07-14 20:09:42

标签: excel vba csv

我对此很陌生,因此我怀疑我能否为任何问题提供任何答案,但我可以总结一下希望的结果。

我有一个需要转换为CSV文件的Excel工作表。在整个项目的时间轴上,这会发生多次,因此,我尝试使用一个按钮来创建VBA代码,以写入csv文件。

我的目标是使代码覆盖位于相同excel文件文件路径内的现有CSV文件

到目前为止,这就是我所拥有的:

子write_csv_xls()

Application.DisplayAlerts = False

xls = ActiveWorkbook.FullName
Length = Len(xls) - 3
csv = Left(xls, Length) & "csv"
dlist = Left(xls, Length - 1)

ActiveWorkbook.SaveAs Filename:= _
    csv, FileFormat:=xlCSV, _
    CreateBackup:=False
ActiveWorkbook.SaveAs Filename:= _
    xls, FileFormat:=xlNormal, _
     Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
    False, CreateBackup:=False
    
Application.DisplayAlerts = True

ActiveSheet.Name = "TITLEBLOCK_DRAWING LIST"
ActiveCell.Select

MsgBox "CSV and XLS files saved"
    

结束子

这将在正确的文件路径中创建xcsv文件,并为我提供了我可以在文本文件中读取的正确输出。对于我的应用程序,代码确实需要为csv文件工作。有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您的问题是您的Excel文件名可能类似于“ workbook.xlsm”,并且在您的代码中仅丢失了正确的3个字符。更好的方法(用于处理旧的.xls文件和.xlsm文件)是使用InStrRev查找“。”的首次出现。从右边:

csv = Left(xls, InStrRev(xls, ".")) & "csv"

此致