【问题标题】:In vba How to change extension when saving file, don't know exact filename在vba中保存文件时如何更改扩展名,不知道确切的文件名
【发布时间】:2012-03-01 08:09:20
【问题描述】:

我的问题是这个。

我使用通配符读入了一系列文件名,因此文件名的结尾是未知的,扩展名是 .xls 或 .xlsx。因此,通配符类似于:

beginningOfFilename_*.xls*

然后,我想在处理完每个文件后,以相同的名称将其保存为 .csv(逗号分隔值文件)。在 vba for excel 中,我可以只指定格式,它会处理扩展名,还是我必须以某种方式取消(未知)扩展名,并附加 .csv

如果第二种情况是必要的,你将如何解决这个问题,我不知道从哪里开始,因为部分文件名是未知的,我不知道如何在 vba 中操作字符串。

我是 VBA 初学者。

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 这里的答案似乎可行:stackoverflow.com/questions/4466998/… 如果我能够为替换指定 .xls 和 .xlsx
  • 是的,你可以。您对示例代码有什么问题?
  • 我不知道我要替换什么 .xls 或 .xlsx

标签: excel vba replace file-extension


【解决方案1】:

你想要的行是:

Mid(sFile, 1, InStrRev(sFile, ".")) & "csv"

其中 sFile 是带有任何扩展名的文件名。

【讨论】:

  • 我无法弄清楚这一点。
【解决方案2】:
Split(sFile, ".")(0) & ".csv"

sFile 是文件名

【讨论】:

    【解决方案3】:

    在不使用扩展名的情况下获取文件的路径和名称。

    Dim StrFileName as string
    
    StrFileName= split(ThisWorkbook.fullName,".xls")(0)
    

    现在使用 StrFileName 内容保存您的 Csv。

    []的

    【讨论】:

    • 不知道扩展名是不是.xls .xlsx 所以不能这样做。
    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多