如何解决在 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
我附上了工作簿的图片,并圈出了我想要保存的部分,以帮助了解我要保存的内容。谢谢!
解决方法
如果你想将多个范围保存为 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] 举报,一经查实,本站将立刻删除。