word文档批量合并每一行或每一列
合并前
如上图表格要合并成下面的表格,只能一行一行的合并,如果几十或上百行需要合并就会很麻烦。所以我自己写了一个VBA脚本,批量合并每一行的单元格。
合并后
当然也可以合并每一列,如下图
支付宝登陆密码忘了怎么办word打开是乱码
合并前
英码
合并后
代码(代码不是乱码,是我用的Blackadder ITC字体,不影响复制粘贴)
Sub 批量合并每一行的单元格() '运行前先选中要合并的单元格苹果12mini
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.使用的时候先选中要合并的单元格,如下图
在点击 “宏”
弹出下面的对话框,选择合并每一行,点击运行即可合并完成。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。