Word VBA-消除浮动对象表

Word VBA-消除浮动对象表,vba,ms-word,Vba,Ms Word,我有一大堆Word文档,其中的表有些“损坏”。我已经能够自动完成大部分修复过程,但有一个问题仍然无法解决 许多表都是浮动对象-当我显示隐藏的格式标记时,我看到表旁边有一个锚点。我不能像这样留下文件,我需要把所有的东西都内联起来 我确实有一段代码可以“修复”这个问题,但我认为这不是一个好的解决方案。通过将文本换行从“None”(默认值-我希望它是什么)更改为“Around”并返回到“None”,这就得到了修复。代码是 Selection.Tables(1).Rows.WrapAroundText

我有一大堆Word文档,其中的表有些“损坏”。我已经能够自动完成大部分修复过程,但有一个问题仍然无法解决

许多表都是浮动对象-当我显示隐藏的格式标记时,我看到表旁边有一个锚点。我不能像这样留下文件,我需要把所有的东西都内联起来

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

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

我相信有更好的办法。有人知道会有效果吗?谢谢

您是否可以发布一个已损坏的示例文档以供下载?听说你找到了锚,单词中新行的符号,我想这是最好的方法

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

将此添加到代码中以修复任何潜在问题

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

我不知道为什么拍打
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

Hy@蓝莓,如果这个或任何答案解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。