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

时间:2017-12-22 09:30:08

标签: excel vba

我正在创建一个宏来编辑我的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

1 个答案:

答案 0 :(得分: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或类似构造将返回的数字转换为常量或链接到size。然后,您可以根据需要为变量赋值或指向已定义的常量。

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

中获取

XlPaperSize Enumeration

XlPageOrientation Enumeration

Object model PaperSize Constants