Word VBA - 消除浮动对象表

时间:2015-07-07 22:30:58

标签: vba ms-word word-vba

我有大量的Word文档,有点"已损坏"表。我已经能够自动完成大部分修复过程,但有一个问题仍然超出我的范围。

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

我确实有一段代码"修复"这个,但我不认为这是一个很好的解决方案。通过改变文本包装来自"无" (默认 - 我希望它是什么)到"周围"并且回到"无",这是固定的。代码是,

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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