【问题标题】:How to add month to an export macro name?如何在导出宏名称中添加月份?
【发布时间】:2020-11-12 09:19:20
【问题描述】:

我有一个宏,可以使用工作表名称将工作表导出为 pdf 到指定文件夹。我想要的是将月份添加为文件名的一部分。我可以从我的工作簿中的单元格中检索它。我会在我的代码中的哪个位置添加此引用?


Dim outFldr As String
Dim ws As Worksheet
Dim i As Variant, sheets_to_select As Variant

outFldr = ActiveWorkbook.Path
sheets_to_select = Array("Summary", "PLC", "MI", "Venture", "EIS", "VCT", "PE", "Debt")

For Each i In sheets_to_select
   ThisWorkbook.Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=outFldr & "\" & i & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False

Next i
MsgBox ("All pdf's exported.")
End Sub

【问题讨论】:

    标签: excel vba export filenames


    【解决方案1】:

    从 Excel 中读取日期,例如使用 format 获取月份编号或名称并将其添加到文件名中。我更喜欢使用中间变量,因为这使代码更易于阅读和调试。

    调整 format 以创建您想要的模式 - 您还可以包括年份。

    For Each i In sheets_to_select
        Dim filename As String, filedate As Date, month As String
        filedate = ThisWorkbook.Sheets(1).Range("A1")       ' Change this so that it reads your cell with the date
        
        month = Format(filedate, "mm") ' For month as 2-digits
        month = Format(filedate, "mmm") ' For month as 3 letters month name
        month = Format(filedate, "mmmm") ' For month as full month name
        
        filename = outFldr & "\" & i & "_" & month & "_.pdf"
        
        ThisWorkbook.Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
            filename:=filename, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next i
    

    【讨论】:

    • 感谢 FunThomas,这行得通!虽然当我尝试将工作表指向 1 以外的任何内容时,我得到一个错误......
    • “将工作表指向 1 以外的任何内容”是什么意思?
    • Sheets(1) 似乎指向我的第一张纸。我要提到的日期是几张纸(比如在第 5 页上)。每次我将 (1) 更改为 (5) 时,它都不喜欢它。
    • 您可以通过编号 (Sheets(1) ) 或名称 (Sheets(Summary)) 访问工作表,当然这可以使用变量来完成。在您的情况下,您使用i 作为变量(不是一个好名字,顺便说一句)来循环一组工作表,因此如果日期在您要导出的工作表内,只需使用ThisWorkbook.Sheets(i).Range("A1")
    • 啊,我明白了。感谢您在原始编辑中的帮助,非常感谢。祝您圣诞快乐,新年快乐!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多