目前,我有一些代码可以将一些图表粘贴到新创建的工作表上,然后将该工作表转换为pdf。但是,如果图形超出一页,则图形将在两页之间的中间截止。我如何确保不会发生这种情况?我应该专门创建一个模板来复制/粘贴这些图形吗?
以下是复制/粘贴图表的部分。
x = 1
y = 1
For i = 1 To source.ChartObjects.Count
title_name = source.ChartObjects(i).Chart.ChartTitle.Text
If InStr(Replace(title_name, ",", ""), search) > 0 Then
source.ChartObjects(i).Activate
ActiveChart.ChartArea.Copy
wsTemp.Cells(x, y).PasteSpecial
x = x + 20
End If
Next
Next
wsTemp.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFileName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
wsTemp.Delete
Application.DisplayAlerts = True
LetsContinue:
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
答案 0 :(得分:0)
这取决于用于创建PDF的过程。如果它正在使用工作表的PrintArea并转换它,那么你可以这样做
1.粘贴图形时,还应将打印区域设置为覆盖图形的宽度
有点像这样的东西:
rngPrintArea = Range(wsTemp.cells(1,1), wsTemp.cells(x, y + 1))
wsTemp.PageSetup.PrintArea = rngPrintArea.Address
2。如果此问题与电子表格中的PrintArea不同,那么 之所以发生,是因为图的宽度只是大于 使用PDF程序然后分配给1页的固定大小 需要减小粘贴图的大小。
ActiveChart.Width = 10 ' Change 10 to whatever width is acceptable for the PDF procedure
ActiveChart.Heigth = 10 ' Change 10 to whatever height is acceptable for the PDF procedure