Word VBA - 消除浮动对象表

Blu*_*rry 13 vba ms-word word-vba

我有大量的Word文档,有些"损坏"的表.我已经能够自动完成大部分修复过程,但有一个问题仍然存在.

许多表都是浮动对象 - 当我显示隐藏的格式标记时,我会在表格中看到一个锚点.我不能保留这样的文件,我需要把所有内容都内联.

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

Selection.Tables(1).Rows.WrapAroundText = True
Selection.Tables(1).Rows.WrapAroundText = False
Run Code Online (Sandbox Code Playgroud)

我确信有更好的方法可以做到这一点.有谁知道一些有用的东西?谢谢!

Uri*_*ren 7

我不知道为什么拍打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
Run Code Online (Sandbox Code Playgroud)


Bri*_*rds 4

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

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

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

For Each Table In Selection.Tables
    If Table.Rows.WrapAroundText = True Then
        Table.Rows.WrapAroundText = True
        Table.Rows.WrapAroundText = False
    End If
Next
Run Code Online (Sandbox Code Playgroud)