Vba 自动适应内容,然后再适应窗口问题

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

我正在尝试编写一个脚本来自动调整表,首先是内容,然后是窗口n Word 2010,只要它们至少有一定的宽度

当我手动自动调整到内容,然后调整到窗口时,表看起来很好,间隔均匀,但是如果我只自动调整到窗口,它们往往会有非常宽的第一列,并挤压其他列

代码:

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属性设置为什么。