VBA(Excel)获取可打印页面的高度

问题描述 投票:0回答:1

我正在制作一个宏来编辑我的Excel文档,方法是在打印文档之前在合并单元格的边框线处设置分页符。但是出现的问题是某些合并的单元格高于页面的最大大小。因此,我必须将合并的单元格拆分为两个(或更多)单元格以使其合适。现在,我事先并不知道我的脚本用户的格式是什么,因此将使用哪种页面类型。所以我需要以某种方式得到当前页面类型的高度,但我无法找到一种方法来做到这一点。这是我最近的尝试:

Private Sub Cellsize(i)
    Dim H As Double
    H = Worksheets("Summery table").PageSetup.PaperSize.Height
    If Cells(i, 1).MergeArea.Height > H Then
        Call FixLastingPageBreaks
    End If
End Sub
excel vba
1个回答
0
投票

请尝试以下方法:

Option Explicit
Sub testing2()

   Dim wb As Workbook
   Set wb = ThisWorkbook

   Dim ws As Worksheet
   Set ws = wb.Worksheets("Sheet1")

   Dim paperSize As Long
   paperSize = ws.PageSetup.paperSize  '9

   Select Case paperSize

    Case 9

    MsgBox "Name: is xlPaperA4, Value: 9, Description: A4 (210 mm x 297 mm)"

    'Case .......

   End Select


   MsgBox ws.PageSetup.Orientation '1

End Sub

您可以使用Select Case或类似构造将返回的数字转换为常量或链接到大小。然后,您可以根据需要为变量赋值或指向已定义的常量。

对象浏览器列出常量,您可以在底部看到数字或从中获取

XlPaperSize Enumeration

XlPageOrientation Enumeration

Object model PaperSize Constants

© www.soinside.com 2019 - 2024. All rights reserved.