修复 MS Word 2007 中合并表格的不规则形状

修复 MS Word 2007 中合并表格的不规则形状

我已经寻找这个问题的答案很长时间了,但没有结果,所以我希望这里有人能帮助我。

我最近将一个文档从 FineReader 12 导出到 Word。该文档基本上是一个 130 页长的表格。表格有常规形状:5 列,没有合并单元格。

然而,当我合并各个表(FineReader 按页面将它们拆分)通过删除它们之间的线条合并为一个,表格在每个连接处都会得到一个不规则的形状,如下所示:

这

考虑到我拥有的桌子数量,有没有办法彻底重置它们的形状?到目前为止,我似乎必须手动调整每个表的列以适应其他列。

我尝试重置表格和列宽、文字换行等;我也选择了整个表格并检查,然后取消选中所有“表格标题”勾选。

将表格转换为文本并转换回来不起作用,因为某些单元格有段落分隔符,这需要稍后处理。

答案1

好的,Paul Edstein 又名 macropod 给了我一个答案MS Office 论坛我稍加修改后,现在它运行得很好。我把解决方案粘贴在这里,因为它可以为任何使用 OCR 等的人节省几十个小时的工作时间。

这个想法是制作一个宏,重新格式化每个表格(如果需要,还有每个单元格)的布局,如下所示:

Sub FixTables()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Tbl As Table, i As Long
With ActiveDocument
    For Each Tbl In .Tables
        With Tbl
            With .Rows
                .LeftIndent = 0
                .WrapAroundText = False
                .Alignment = wdAlignRowCenter
            End With
            .TopPadding = 0
            .LeftPadding = 0
            .RightPadding = 0
            .BottomPadding = 0
            .AllowAutoFit = False
            .PreferredWidthType = wdPreferredWidthAuto
            If .Uniform Then
                .Columns(1).Width = CentimetersToPoints(1#)
                .Columns(2).Width = CentimetersToPoints(3.75)
                .Columns(3).Width = CentimetersToPoints(3.75)
                .Columns(4).Width = CentimetersToPoints(3.75)
                .Columns(5).Width = CentimetersToPoints(3.75)
            Else
                For i = 1 To .Range.Cells.Count
                    Select Case (i - 1 Mod 5) + 1
                        Case 1: .Range.Cells(i).Width = CentimetersToPoints(1#)
                        Case Else: .Range.Cells(i).Width = CentimetersToPoints(3.75)
                    End Select
                Next
            End If
    End With
    While .Tables.Count > 1
        .Tables(1).Range.Characters.Last.Next.Delete
    Wend
Next
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

唯一的缺点是,虽然它只用几秒钟就可以完成 3 个表格的执行,但对一组 50 个表格执行更改却需要大约 15 分钟。对此的调整包括暂时关闭 Word 中的屏幕刷新并抑制所有警报(否则每次 Word 耗尽 RAM 时它都会要求保存更改)。

请注意此解决方案仅适用于 5 列,因此请进行相应调整!

相关内容