【问题标题】:How to change file extensions in VBA如何在 VBA 中更改文件扩展名
【发布时间】:2015-02-27 21:33:54
【问题描述】:

我觉得这一定很简单,但我找不到答案。我正在使用 vba 保存一堆 csv 文件,并希望将所有文件扩展名从 .csv 更改为 .txt 以导入另一个仅识别 .txt 扩展名的程序(Revit)。这可能吗?这是我正在使用的命令。

    For I = 1 To WS_Count

        path = CurDir() + "\" + ActiveWorkbook.Worksheets(I).Name

        Sheets(ActiveWorkbook.Worksheets(I).Name).Select
        ActiveWorkbook.SaveAs Filename:=path, FileFormat:=xlCSV, CreateBackup:=False

        Name path As ("path" + ".txt")

     Next I

谢谢!

【问题讨论】:

    标签: vba excel csv


    【解决方案1】:

    您甚至不需要打开文件来重命名它们。

    Sub M_snb()
      name "G:\OF\example.csv" As "G:\OF\example.txt"
    end sub
    

    【讨论】:

    • 谢谢。我还有点小麻烦。我收到“找不到文件”错误。你介意看看我的代码吗?我在上面加了。
    • 没关系。知道了。您只需将 .txt 添加到文件名即可。将更新线程。
    • 这仅在您启用了文件扩展名(在 Windows 10 中默认禁用)时才有效
    【解决方案2】:

    你应该改变

    FileFormat:=xlCSV 
    

    FileFormat:=xlTextWindows
    

    https://msdn.microsoft.com/en-us/library/office/ff198017.aspx

    MSDN 上的 xlFileFormat 枚举 (Excel)

    【讨论】:

    • 谢谢,但这不适用于我正在尝试做的事情。我仍然将文件格式化为逗号分隔值,但希望扩展名是 txt。 xlTextWindows 使用逗号以外的不同分隔符。看起来像标签。 Snb 的建议是可行的方法。
    【解决方案3】:

    好的,知道了。您可以只在文件名中添加 txt,即使它是 CSV 格式。

    WS_Count = ActiveWorkbook.Worksheets.Count
             For I = 1 To WS_Count
    
            path = CurDir() + "\" + ActiveWorkbook.Worksheets(I).Name + ".txt"
    
            Sheets(ActiveWorkbook.Worksheets(I).Name).Select
            ActiveWorkbook.SaveAs Filename:=path, FileFormat:=xlCSV, CreateBackup:=False
    
    
            Debug.Print (test)
            Debug.Print (path)
    
         Next I
    

    【讨论】:

      【解决方案4】:

      试试这个。它将从您系统的指定目录中获取文件,并将转换后的文件从 CSV 返回到 Text。

      Sub changeExt()
      
      strDir = "C:\Users\user\Desktop\xyz"    'Your file directory
      
      With CreateObject("wscript.shell")
      
           .currentdirectory = strDir
      
           .Run "%comspec% /c ren *.csv *.txt", 0, True
      
      End With
      
      End Sub
      

      【讨论】:

      • 欢迎来到 Stack Overflow。 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它是如何解决问题的。请编辑您的答案以解释此代码的作用以及它如何回答问题,以便它对 OP 以及其他有类似问题的用户有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2011-02-23
      相关资源
      最近更新 更多