微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 VBA 中拉起“另存为”框以将图表和范围保存为 PDF

如何解决在 VBA 中拉起“另存为”框以将图表和范围保存为 PDF

我正在尝试将宏分配给一个按钮,该按钮会将绘图和几个值范围保存到单个 PDF 文件中,用户自己命名(并为其选择保存位置)。到目前为止,我可以调用打开另存为框,从我在这里看到回答的另一个问题,但我不确定如何指定我想要保存的内容

Sub Save()

Dim bFileSaveAs As Boolean
bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
If Not bFileSaveAs Then MsgBox "User cancelled",vbCritical
Dim chrt As Chart
Dim rng As Range

End Sub

我附上了工作簿的图片,并圈出了我想要保存的部分,以帮助了解我要保存的内容。谢谢!

enter image description here

解决方法

如果你想将多个范围保存为 PDF,那么你可以试试这个代码:

    Sub CreateMultiRangeOnePagePDF()

  Dim RangeArray() As Variant
  Dim x As Long,LR As Long
  Const RngPad As Long = 2 'set to number of rows between ranges
  
  RangeArray = Array("Sheet1!A1:D30","Sheet1!E1:H30","Sheet1!I1:L30")
  
  Application.ScreenUpdating = False
  
  Sheets.Add After:=Sheets(Sheets.Count)
  
  For x = 0 To UBound(RangeArray)
  
    LR = Sheets(Sheets.Count).Cells(Rows.Count,1).End(xlUp).Row
    
    If LR <> 1 Then LR = LR + 1 + RngPad
    
    Range(RangeArray(x)).Copy
    
    Sheets(Sheets.Count).Cells(LR,1).PasteSpecial Paste:=xlPasteValues
    
    Selection.PasteSpecial Paste:=xlPasteFormats
    
    Application.CutCopyMode = False
    
  Next x
  
  Sheets(Sheets.Count).ExportAsFixedFormat Type:=xlTypePDF,_
    Filename:="Z:\Test.pdf",_
    Quality:=xlQualityStandard,_
    IncludeDocProperties:=True,_
    IgnorePrintAreas:=False,_
    OpenAfterPublish:=False
    
  Application.DisplayAlerts = False
  Sheets(Sheets.Count).Delete
  Application.DisplayAlerts = True
  
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。