【问题标题】:Vba: Print an Excel sheet to multiple pdf pagesVba:将Excel工作表打印到多个pdf页面
【发布时间】:2018-11-15 20:32:38
【问题描述】:

我会尽量保持简短。我正在做一个 Excel 项目,我必须在最后打印一张纸,问题是打印的 PDF 太小,所以我在不同的论坛上查找它,我发现我不得不转.FitToPagesTall = 0 为了使 excel 工作表不适合一个 pdf 页面。我现在正在努力解决的问题是,即使 pdf 页面比以前大,它仍然很小,而且很难阅读。我的想法是在 pdf 页面中打印每 30 行(例如)(Page1 --> Range("A1:E30"), Page2 --> Range("A31:E60").. etc,你明白了)

请问有什么办法吗?

提前致谢!

更新 #1:这是我的数据范围的一部分的屏幕截图

即使我将.PrintArea 设置为 A:D,它仍然给出相同的结果。重新表述我的要求:我正在寻找一种在多页中打印不同范围的方法。

感谢大家在你的时间里给我一个部分。

【问题讨论】:

  • 您可以使用PageSetup.Zoom PropertyWorksheets("Sheet1").PageSetup.Zoom = 150 一样缩放到固定值,而不是让Excel 适应它。或者使用PageSetup.FitToPagesWide Property 使其适合页面的宽度。
  • 您检查过现有的问题/答案吗?这是一个很常见的问题。
  • 嗨 Peh,感谢您的回答。我的 Pdf 导出代码中有以下几行: .Zoom = 200 .FitToPagesWide = 1 .FitToPagesTall = 0 但仍然无济于事。
  • 嗨@ashleedawg,是的,我已经找了好几个小时了,我唯一发现的是将多张纸打印到pdf,但不是将一张纸打印到多个pdf页面。谢谢你回答你
  • @Hamouza 你真的是指多个 PDF 文件还是只是多个页面?

标签: vba excel pdf pdf-generation


【解决方案1】:

尝试调整方向并水平拟合数据,如下所示:

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

【讨论】:

  • 感谢您的回答,这正是我正在使用的代码,但它仍然只在多页上打印工作表,但页面仍然难以阅读(它只有 4 列工作表)
  • 我们可以只用第一行数据来了解维度吗?
  • 除了上面的代码:.PrintArea = "$A$A:$D$D"之外,可能你只需要设置打印到这4列。如果这没有帮助,请在原始问题中提供工作表的屏幕截图和打印预览,以便我们查看差异
  • 我更新了我的帖子,希望它有助于让我清楚。谢谢大家给我宝贵的时间!
猜你喜欢
  • 2014-04-08
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多