我对vba和word宏非常陌生。我在将文档导出到Word时遇到问题,其中一些表超出了页面宽度。我想知道是否有一种方法可以检查每个表是否在页面宽度之内,如果不是,则仅定位超出页面宽度的表并将这些表自动适合窗口。
以下是一些代码,可将文档中的每个表自动调整到窗口中:
Sub tablesAutoFit()
Dim table As table
For Each table In ActiveDocument.Tables
table.AutoFitBehavior (wdAutoFitWindow)
table.AllowAutoFit = False
Next
End Sub
我想知道是否有一种方法可以自动调整超过页面宽度的表格,而不是文档中的每个表格。
谢谢
答案 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