[英]Vba: Print an Excel sheet to multiple pdf pages
我会尽量保持简短。 我正在做一个 Excel 项目,我必须在最后打印一张纸,问题是打印的 PDF 太小,所以我在不同的论坛上查找它,我发现我必须转.FitToPagesTall = 0
为了使 excel 工作表不适合一个 pdf 页面。 我现在正在努力解决的问题是,即使 pdf 页面比以前大,它仍然很小,而且很难阅读。 我的想法是在 pdf 页面中打印每 30 行(例如)(Page1 --> Range("A1:E30"), Page2 --> Range("A31:E60").. etc,你明白了)
有什么想法我该怎么做吗?
提前致谢 !
即使我将.PrintArea
设置为 A:D,它仍然给出相同的结果。 重新表述我的要求:我正在寻找一种在多页中打印不同范围的方法。
感谢大家在你的时间里给了我一部分。
尝试调整方向并水平拟合数据,如下所示:
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1" 'to repeat your header on each page
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape ' or xlPortrait
.Zoom = False
.FitToPagesWide = 1 'fit to wide only
.FitToPagesTall = 0
End With
编辑:添加了自动选择代码
我对问题的理解:如何将同一工作表中的多个选择打印到包含多个页面的 PDF 中(每个选择=新页面)
Range("A1:E30, A31:E60") _
.PrintOut Copies:=1, Collate:=True 'your ranges in the quotes
'prompts user to choose destination where to save to
相当于手动选择多个范围(按住ctrl
),打印时选择print selection
。
如果你喜欢上面的想法,你可能喜欢下面的代码?
它构造一个string
,例如: "A1:D30,A31:D60,A61:D90"
,它指定要选择的范围。 假设数据在 AD 列中,最后一行可以在 A 列中找到。您可以在my_step
中指定要打印的行数。
Sub select_and_print()
Dim s_rn, s_range As String
Dim i, my_step As Integer
Dim selections_count As Single
my_step = 30 'how many rows to include on 1 page
'to prevent extra page in some cases:
selections_count = WorksheetFunction.RoundUp((Cells(Rows.Count, 1).End(xlUp).Row / my_step), 0)
'String, which specifies selections in ws, between columns A - D
For i = my_step To selections_count * my_step Step my_step:
s_rn = "A" & (i - my_step + 1) & ":D" & i
If i = my_step Then
s_range = s_rn
Else
s_range = s_range + "," + s_rn
End If
Next i
'selection & print
Range(s_range).PrintOut Copies:=1, Collate:=True
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.