首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA写入csv文件而不是写入xcsv文件

VBA写入csv文件而不是写入xcsv文件
EN

Stack Overflow用户
提问于 2020-07-15 04:09:43
回答 1查看 41关注 0票数 0

我对此非常陌生,所以我怀疑我是否能够为任何问题提供任何答案,但我可以总结我充满希望的结果。

我有一个excel工作表,我需要转换为CSV文件。在项目的整个时间线中,这种情况会多次发生,因此我尝试创建一个VBA代码,其中包含一个用于写入csv文件的按钮。

我的目标是让代码覆盖位于同一excel文件路径中的现有CSV文件

到目前为止,我得到的是:

子write_csv_xls()

代码语言:javascript
运行
复制
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文件。有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-07-15 04:42:46

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

代码语言:javascript
运行
复制
csv = Left(xls, InStrRev(xls, ".")) & "csv"

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62903253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档