首页 > 解决方案 > 如何在今天的日期之前将多个 excel 工作表保存到所需的位置?

问题描述

我想按今天的日期和单元格值将多个 Excel 表保存到所需的文件夹?我怎么能做到。因此,假设我有 5 个单元格值为 A1 = "ABC" 的 Excel 工作表,依此类推。所以我想按今天的日期和单元格值保存这 5 个 excel 表。这些所有数据都是静态的。

我已经运行了这段代码。它将所有工作表保存到该位置,但不是按今天的日期,还按单元格值保存。

Sub ExportSheetsToCSV()
Dim xWs As Worksheet
Dim xcsvFile As String

For Each xWs In Application.ActiveWorkbook.Worksheets
    xWs.Copy
    xcsvFile = "F\" & "\" & xWs.Name & ".csv"
    Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
    FileFormat:=xlCSV, CreateBackup:=False
       Application.DisplayAlerts = False
    Application.ActiveWorkbook.Saved = True

    Application.ActiveWorkbook.Close
Next
End Sub

我无法保存它。

标签: excelvbaexcel-formula

解决方案


您发布的原始代码充满了语法问题,而且您从未指定要将今天的日期保存在文件名中。试试下面的。我做了一些评论,向您展示您遇到的一些问题。

Sub ExportSheetsToCSV()

    Dim xWs As Worksheet
    Dim xcsvFile As String

    For Each xWs In ThisWorkbook.Worksheets 'only move through the sheets in the workbook housing the code

        xcsvFile = "F:\" & xWs.Range("A1").Value & "_" & Format(Now, "mm-dd-yyyy") & ".csv"
        'xcsvFile = "F\" & "\" & xWs.Name & ".csv" 'compare mine to yours to see issues

        xWs.Copy

        Dim newSheet As Workbook 'setting copied sheet to workbook variable for easier coding
        Set newSheet = ActiveSheet.Parent 'parent of worksheet is workbook

        newSheet.SaveAs Filename:=xcsvFile, FileFormat:=xlCSV, CreateBackup:=False
        newSheet.Close False

    Next

End Sub

推荐阅读