我对此很陌生,因此我怀疑我能否为任何问题提供任何答案,但我可以总结一下希望的结果。
我有一个需要转换为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文件工作。有什么想法吗?
谢谢
答案 0 :(得分:0)
您的问题是您的Excel文件名可能类似于“ workbook.xlsm”,并且在您的代码中仅丢失了正确的3个字符。更好的方法(用于处理旧的.xls文件和.xlsm文件)是使用InStrRev
查找“。”的首次出现。从右边:
csv = Left(xls, InStrRev(xls, ".")) & "csv"
此致