word文档批量合并每一行或每一列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如上图表格要合并成下面的表格,只能一行一行的合并,如果几十或上百行需要合并就会很
当然也可以合并每一列,如下图
代码(代码不是乱码,是我用的Blackadder ITC字体,不影响复制粘贴):
Sub 批量合并每一行的单元格() '运行前先选中要合并的单元格
Dim mytable As Word.Table
Dim mycells As Word.Cells
Dim mycell() As Integer
Set mytable = Selection.Tables(1)
Set mycells = Selection.Cells
ReDim mycell(mycells.Count, 1)
For i = 1 To mycells.Count
mycell(i - 1, 0) = mycells.Item(i).RowIndex
mycell(i - 1, 1) = mycells.Item(i).ColumnIndex
Next i
Dim p: p = 0
For k = 1 To UBound(mycell)
If mycell(p, 0) <> mycell(k, 0) Then
mytable.Cell(mycell(p, 0), mycell(p, 1)).Merge mytable.Cell(mycell(k - 1, 0), mycell(k - 1, 1))
p = k
End If
Next k
End Sub
Sub 批量合并每一列的单元格() '运行前先选中要合并的单元格
Dim mytable As Word.Table
Dim mycells As Word.Cells
Dim mycell() As Integer
Set mytable = Selection.Tables(1)
Set mycells = Selection.Cells
ReDim mycell(mycells.Count, 1)
For i = 1 To mycells.Count
mycell(i, 0) = mycells.Item(i).RowIndex
mycell(i, 1) = mycells.Item(i).ColumnIndex
Next i
For k = 1 To mycell(UBound(mycell), 1) - mycell(1, 1) + 1
For p = UBound(mycell) To 1 Step -1
If mycell(k, 1) = mycell(p, 1) Then
mytable.Cell(mycell(k, 0), mycell(k, 1)).Merge mytable.Cell(mycell(p, 0), mycell(p, 1))
Exit For
End If
Next p
Next k
End Sub 'by baidu:cy9934303 qq:83661091
使用方法:
1.点击“开发工具”再点击“Visual Basic”如下
如果找不到“开发工具”选项,如下图点击WORD选项
然后在弹出的对话框勾选“在功能区显示开发工具选项卡”,确定即可
2.打开“Visual Basic”后,双击下图箭头指的选项,然后将代码复制到弹出的框框里面即可。
3.使用的时候先选中要合并的单元格,如下图
在点击“宏”
弹出下面的对话框,选择合并每一行,点击运行即可合并完成。