【问题标题】:Word VBA - Eliminate Floating Object TablesWord VBA - 消除浮动对象表
【发布时间】:2023-03-20 07:32:01
【问题描述】:

我有大量带有有些“损坏”的表格的 Word 文档。我已经能够将大部分修复过程自动化,但我仍然无法解决一个问题。

许多表格都是浮动对象 - 当我显示隐藏的格式标记时,我会在表格旁边看到一个锚点。我不能像这样离开文档,我需要将所有内容都内联。

我确实有一段代码可以“修复”这个问题,但我认为这不是一个好的解决方案。通过将文本换行从“无”(默认值 - 我想要的)更改为“周围”并返回“无”,这得到了修复。代码是,

Selection.Tables(1).Rows.WrapAroundText = True
Selection.Tables(1).Rows.WrapAroundText = False

我确信有更好的方法来做到这一点。有谁知道会起作用的东西?谢谢!

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    我不知道为什么翻转 WrapAroundText 标志可以解决您的问题,VBA 有很多这样的怪癖。

    将此方法自动应用于文档中的所有表格非常简单:

    Dim i as Integer
    For i=1 to Len(ActiveDocument.Tables)
      ActiveDocument.Tables(i).Rows.WrapAroundText = True
      ActiveDocument.Tables(i).Rows.WrapAroundText = False
    Next i
    

    【讨论】:

      【解决方案2】:

      您能否发布一个损坏的示例文档以供下载?听说您找到了锚点,即 Word 中新行的符号,我认为这是最好的方法。

      您的代码似乎会在您选择每个表时查看它,或者当您的代码选择它时(?)。

      将此添加到您的代码中以解决任何潜在问题。

      For Each Table In Selection.Tables
          If Table.Rows.WrapAroundText = True Then
              Table.Rows.WrapAroundText = True
              Table.Rows.WrapAroundText = False
          End If
      Next
      

      【讨论】:

      • 嗨@BlueBerry,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多