我对此非常陌生,所以我怀疑我是否能够为任何问题提供任何答案,但我可以总结我充满希望的结果。
我有一个excel工作表,我需要转换为CSV文件。在项目的整个时间线中,这种情况会多次发生,因此我尝试创建一个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文件。有什么想法吗?
谢谢
发布于 2020-07-15 04:42:46
您的问题是,您的Excel文件名可能类似于"workbook.xlsm",而在您的代码中,您只丢失了正确的3个字符。更好的方法(处理旧的.xls文件和.xlsm文件)是使用InStrRev查找第一次出现的“。从右至右:
csv = Left(xls, InStrRev(xls, ".")) & "csv"致以敬意,
https://stackoverflow.com/questions/62903253
复制相似问题