【问题标题】:Setting name of output files设置输出文件名
【发布时间】:2018-06-01 16:49:19
【问题描述】:

我目前使用的 VBA 宏将工作簿中的所有工作表复制并保存为 .csv。下面显示的宏仅使用工作表名称作为新文件名。

Sub ExportSheetsToCSV()
    Dim xWs As Worksheet
    Dim xcsvFile As String
    For Each xWs In Application.ActiveWorkbook.Worksheets
        xWs.Copy
        xcsvFile = CurDir & "\" & xWs.Name & ".csv"
        Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
        FileFormat:=xlCSV, CreateBackup:=False
        Application.ActiveWorkbook.Saved = True
        Application.ActiveWorkbook.Close
    Next
End Sub

我的问题是,我将如何将工作簿名称的一部分添加到开头?谢谢

【问题讨论】:

  • 一份是什么意思?

标签: vba excel save filenames


【解决方案1】:

例如(未经测试)

Sub ExportSheetsToCSV()
    Dim xWs As Worksheet, wb As Workbook, wbCopy As Workbook
    Dim xcsvFile As String

    Set wb = Application.ActiveWorkbook

    For Each xWs In wb.Worksheets

        xWs.Copy
        Set wbCopy = Application.ActiveWorkbook
        'include the first 4 characters from the workbook name
        xcsvFile = CurDir & "\" & Left(wb.Name, 4) & "_" & xWs.Name & ".csv"
        wbCopy.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV, _
                      CreateBackup:=False

        wbCopy.Close False 'no save...
    Next
End Sub

【讨论】:

  • 是的,这样的事情会起作用。我必须对其进行测试,但我只需将原始工作簿中的前 10 个字符添加到新 csv 文件的开头即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
相关资源
最近更新 更多