【问题标题】:VBA word stop merging cells adds new lines to merged cellVBA word停止合并单元格向合并单元格添加新行
【发布时间】:2017-03-15 12:11:49
【问题描述】:

我有一个 word 表格,其中我将 1 个单元格与文本合并到它左侧的 2 个空单元格中。每次合并时,它都会在合并单元格的文本下添加一个新行。这弄乱了桌子的整个布局。此表已从 Excel 复制并粘贴到 Word 中。我该如何解决这个问题?

Dim table1 as Table
With table1
.Cell(Row:=1, Column:=3).Merge _ 
MergeTo:=.Cell(Row:=1, Column:=5)
End With

【问题讨论】:

  • Mkay...您是否使用一些代码将其标记为vba??如果是,请添加您的代码。如果不是,请更改标签并添加更多详细信息。在这两种情况下,都是edit 时间! ;)
  • 顺便说一句,我看到您没有接受tour,也没有接受您的 7 个问题的任何答案,是时候了解 SO 的工作原理了!然后返回您的个人资料,接受对每个问题都有帮助的答案,然后您可以获得更多帮助! ;)
  • 抱歉,我已在代码中添加并解决了旧问题。

标签: vba excel ms-word


【解决方案1】:

此变体包括两个解决方案,用于处理正在合并的单元格中的现有内容。

Private Sub TestMerge()
    Dim i As Long

    With ActiveDocument.Tables(1).Rows(1)
        For i = 3 To 4
'            .Cells(i).Range.Text = ""
            .Cells(2).Merge .Cells(i)
        Next i
        .Cells(2).Range.Text = ""
    End With
End Sub

第一个解决方案删除单元格 3 和 4 中的所有内容,但保留单元格 (2) 的内容。在上面的代码中,它被代码前面的撇号呈现为静音。

第二种方法是从合并的单元格中删除所有内容。我建议只在Application.ScreenUpdating = False 时运行这个版本,因为它会导致很多闪烁。

还有多种方法,但要推荐最适合您需求的方法,您需要更好地了解您的需求。顺便说一句,如果可能的话,在输入时从表格中删除空格。让空白漂浮在您的文档周围并在最不期望或最不想要的时候弹出它们绝不是一个好主意。

【讨论】:

    【解决方案2】:

    合并命令只能合并两个相邻的单元格。您可以使用循环来合并更多单元格。

    Dim i As Long
    
    With ActiveDocument.Tables(1).Rows(1)
        For i = 3 To 4
            .Cells(2).Merge .Cells(i)
        Next i
    End With
    

    单元格 3 和 4 与单元格 (2) 合并。

    【讨论】:

    • 它有效也无效。问题是要合并的空单元格中包含一个“空格”字符,我不知道如何在合并单元格之前将其删除。我试过Tables(1).Cells(1,3).Select Selection.Delete,但它不起作用。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2014-11-22
    相关资源
    最近更新 更多