Vba 自动适应内容,然后再适应窗口问题
我正在尝试编写一个脚本来自动调整表,首先是内容,然后是窗口n Word 2010,只要它们至少有一定的宽度 当我手动自动调整到内容,然后调整到窗口时,表看起来很好,间隔均匀,但是如果我只自动调整到窗口,它们往往会有非常宽的第一列,并挤压其他列 代码:Vba 自动适应内容,然后再适应窗口问题,vba,ms-word,Vba,Ms Word,我正在尝试编写一个脚本来自动调整表,首先是内容,然后是窗口n Word 2010,只要它们至少有一定的宽度 当我手动自动调整到内容,然后调整到窗口时,表看起来很好,间隔均匀,但是如果我只自动调整到窗口,它们往往会有非常宽的第一列,并挤压其他列 代码: Sub AutoFitTables() If ActiveDocument.Tables.Count > 0 Then Dim objTable As Object Application.Browser.Target
Sub AutoFitTables()
If ActiveDocument.Tables.Count > 0 Then
Dim objTable As Object
Application.Browser.Target = wdBrowseTable
For Each objTable In ActiveDocument.Tables
' Check the table width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitContent)
' Again only fit tables above a certain width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitWindow)
End If
End If
Next
End If
End Sub
问题:
Sub AutoFitTables()
If ActiveDocument.Tables.Count > 0 Then
Dim objTable As Object
Application.Browser.Target = wdBrowseTable
For Each objTable In ActiveDocument.Tables
' Check the table width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitContent)
' Again only fit tables above a certain width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitWindow)
End If
End If
Next
End If
End Sub
结果与我手动仅自动适应窗口时的结果相同。就像它首先忽略了内容的自动调整
这里有我遗漏的东西吗?或者有人对如何实现与手动调整内容、然后调整窗口相同的效果提出了建议吗
编辑:
Sub AutoFitTables()
If ActiveDocument.Tables.Count > 0 Then
Dim objTable As Object
Application.Browser.Target = wdBrowseTable
For Each objTable In ActiveDocument.Tables
' Check the table width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitContent)
' Again only fit tables above a certain width
If objTable.Columns.Width > 11520 Then
objTable.AutoFitBehavior (wdAutoFitWindow)
End If
End If
Next
End If
End Sub
它似乎也忽略了宽度约束。我相信返回的表是Twips格式的,因此短边上应该只有11907个,长边上应该只有16840个,但不管我设置的截止值有多大(例如
objTable.Columns.Width>20000
),它仍然自动适合所有表。因此,如果有人知道为什么会发生这种情况,这也会很有帮助您将.preferredwidth属性设置为什么。.preferredwidth属性设置为什么。