仅将自动调整窗口应用于超过页面宽度的表

时间:2018-07-05 14:10:00

标签: vba word-vba

我对vba和word宏非常陌生。我在将文档导出到Word时遇到问题,其中一些表超出了页面宽度。我想知道是否有一种方法可以检查每个表是否在页面宽度之内,如果不是,则仅定位超出页面宽度的表并将这些表自动适合窗口。

以下是一些代码,可将文档中的每个表自动调整到窗口中:

Sub tablesAutoFit()

Dim table As table

For Each table In ActiveDocument.Tables

table.AutoFitBehavior (wdAutoFitWindow)

table.AllowAutoFit = False

Next

End Sub

我想知道是否有一种方法可以自动调整超过页面宽度的表格,而不是文档中的每个表格。

谢谢

1 个答案:

答案 0 :(得分:0)

为了确定表格是否适合页面,必须确定表格宽度并将其与页面宽度进行比较。以下示例假定该表不包含水平合并的单元格,因此可以对这些列进行寻址。如果不是这种情况,则需要“漫游”(ny)行中的单元以获取其宽度。

Sub TableWidth()
    Dim tbl As Word.Table
    Dim col As Word.Column
    Dim tblWidth As Double, pgWidth As Double
    Dim pgSetup As Word.PageSetup

    Set pgSetup = ActiveDocument.PageSetup
    pgWidth = pgSetup.PageWidth - pgSetup.LeftMargin - pgSetup.RightMargin
    Set tbl = ActiveDocument.Tables(1)
    For Each col In tbl.Columns
        tblWidth = tblWidth + col.width
    Next
    If pgWidth < tblWidth Then
        tbl.AutoFitBehavior wdAutoFitWindow
    End If
    Debug.Print tblWidth, pgWidth
End Sub