合并前 | |||||
如上图表格要合并成下面的表格,只能一行一行的合并,如果几十或上百行需要合并就会很麻烦。所以我自己写了一个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小时内删除。
发表评论