excel 如何将工作表保存为由工作表名称、单元格和当前日期指定的pdf格式

e4eetjau  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(153)

我有一个工作表,我需要保存活动工作表名称,一个单元格和日期。

Sub PrintToPDF()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                Filename:="P:\Estimating Misc\EXPERIMENTS\" + ActiveSheet.Name + " & "RANGE("F18:J18") & FORMAT("DATE,DD.MM.YYYY")".PDF", _
                                IGNOREPRINTAREAS:=False, _
                                OPENAFTERPUBLISH:=True

End Sub

我是VBA的超级新手,所以这是我在网上找到的东西的集合。我错过了什么?

qrjkbowd

qrjkbowd1#

  • Use & to concatenate,而不是+
  • 通过合并单元格的最顶部、最左侧的单元格引用其值,因此仅限F18
Sub PrintToPDF()
    With ActiveSheet
        Dim FileName As String
        FileName = "P:\Estimating Misc\EXPERIMENTS\" _ 
            & .Name & " " & .Range("F18").Value _ 
            & Format$(Date, "dd.mm.yyyy") & ".pdf"

        .ExportAsFixedFormat Type:=xlTypePDF, _
                             FileName:=FileName, _
                             IgnorePrintAreas:=False, _
                             OpenAfterPublish:=True                 
    End With
End Sub
xyhw6mcr

xyhw6mcr2#

当你计算文件名时,你的部分是错误的。引号字符在错误的位置。一对引号内的所有内容都被VBA保持不变。
如果要读取一个单元格的内容,则需要指定该单元格。即使合并了单元格,单元格区域(如Range("F18:J18"))也将失败。只需指定第一个单元格(Range("F18:J18"))。
而且,您应该始终使用&进行字符串连接。
最好是将文件名创建成一个变量--如果它不正确,你可以使用调试器或即时窗口(Ctrl+G)来检查到底是怎么回事。

Dim pdfFilename As String
pdfFilename = "P:\Estimating Misc\EXPERIMENTS\" _
            & ActiveSheet.Name _
            & Range("F18") _
            & Format(Date, "DD.MM.YYYY") _
            & ".PDF"
' Check in the immediate window the content of the variable pdfFilename.
Debug.Print pdfFilename

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                            Filename:=pdfFilename, _
                            IGNOREPRINTAREAS:=False, _
                            OPENAFTERPUBLISH:=True

相关问题