【问题标题】:Saving excel worksheet to CSV with file name from a cell using a macro使用宏将 Excel 工作表保存为 CSV,其中包含来自单元格的文件名
【发布时间】:2014-11-28 12:14:24
【问题描述】:

我有一个宏,可以保存我的工作簿的副本,但它保存为 .xlsm 我需要将其保存为逗号分隔的 .csv 文件类型 谁能帮帮我?

这是我现在拥有的宏

Sub toCSV()

Dim newWB As Variant
Dim wb1 As Workbook
Set wb1 = ActiveWorkbook
With wb1
    .SaveCopyAs ("C:\Users\sales\desktop\") & Range("A2").Text & ".xlsm"
End With

End Sub

【问题讨论】:

    标签: vba excel csv


    【解决方案1】:

    此代码会将您要保存为 CSV 的工作表,并在保存前将其复制到新工作簿

    Dim CSVBook As Workbook
    Set CSVBook = Workbooks.Add
    ThisWorkbook.Sheets("TheCSVSheet").Copy Before:=CSVBook.Sheets(1)
    CSVBook.SaveAs Filename:="C:\tmp\test.csv", FileFormat:=xlCSV
    CSVBook.Close
    

    这将允许您将文件另存为 CSV,但仍保留启用宏的原始电子表格,您可以返回该电子表格并执行您需要的任何其他处理

    【讨论】:

      【解决方案2】:

      代码:

      .SaveAs Filename:=("C:\Users\sales\desktop\") & Range("A2").Text & ".csv", _
      FileFormat=:xlCSV
      

      【讨论】:

      • 这可行,但我需要保持当前工作簿打开,这会留下原始工作簿并转到已保存的工作簿,如果可以的话,我希望有一个宏可以保存工作簿的单独副本并保留原来打开
      • .SaveCopyAs 不支持更改文件类型,因此您只需在.SaveAs 之前添加不带参数的Worksheet.Copy 并将.SaveAs 更改为ActiveWorkbook.SaveAs Filename:=("C:\Users\sales\desktop\") & wb1.Range("A2").Text & ".csv", _ FileFormat=:xlCSV 然后@987654327 @ 之后。
      【解决方案3】:

      尝试将此添加到您的代码中:

      FileFormat:=xlCSVMSDOS
      

      并将“.xlsm”更改为“.csv”

      我也强烈建议您查看here 以了解未来有关储蓄的问题!

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 2014-06-06
        相关资源
        最近更新 更多