cxgrid 行合并单元格_【Excel VBA】如何批量撤销合并单元格?
周末好,之前我們分享了批量合并單元格的VBA小代碼,鏈接參考:
【Excel VBA】如何批量合并相同值單元格?
天下大勢合久必分、分久必合、分分合合合合分分又合合合再分分分又又合合合合合合合…………
今天我們分享的小代碼就是如何批量撤銷合并單元格……
端上動(dòng)畫示意圖:
代碼如下:
Sub unMergeRng() '撤銷合并單元格
??? Dim rngUser As Range
??? Dim rngMerge As Range
??? Dim lngRowFirst As Long
??? Dim lngRowEnd As Long
??? Dim lngClnFirst As Long
??? Dim lngColEnd As Long
??? Dim lngRowMerge As Long
??? Dim i As Long
??? Dim j As Long
??? Dim rngSelect As Range
??? On Error Resume Next
??? Set rngSelect = Selection
??? '用戶初始選擇的單元格
??? Set rngUser = Application.InputBox("請選擇需要撤銷合并的單元格區(qū)域!", Default:=rngSelect.Address, Type:=8)
??? '用戶選擇需要撤銷合并的單元格區(qū)域
??? Set rngUser = Intersect(rngUser.Parent.UsedRange, rngUser)
??? 'Intersect避免用戶選擇整列等單元格范圍時(shí),程序運(yùn)算數(shù)據(jù)虛大,運(yùn)算效率低下
??? If rngUser Is Nothing Then MsgBox "選擇的單元格區(qū)域不能為空白": Exit Sub
??? lngRowFirst = rngUser.Row
??? '運(yùn)算范圍的初始行
??? lngRowEnd = lngRowFirst + rngUser.Rows.Count - 1
??? '運(yùn)算范圍的結(jié)束行
??? lngClnFirst = rngUser.Column
??? '運(yùn)算范圍的開始列
??? lngColEnd = lngClnFirst + rngUser.Columns.Count - 1
??? '運(yùn)算范圍的結(jié)束列
??? Application.ScreenUpdating = False
??? For i = lngRowFirst To lngRowEnd
??? '遍歷行
??????? For j = lngClnFirst To lngColEnd
??????? '遍歷列
??????????? lngRowMerge = Cells(i, j).MergeArea.Rows.Count
??????????? '合并單元格的行數(shù)
??????????? If lngRowMerge > 1 Then
??????????????? With Cells(i, j).Resize(lngRowMerge, 1)
??????????????????? .Select
??????????????????? .UnMerge
??????????????????? '撤銷合并
??????????????????? .Value = Cells(i, j)
??????????????????? '填充數(shù)據(jù)
??????????????? End With
??????????? End If
??????? Next
??????? i = i + lngRowMerge - 1
??????? '跳過已處理完的合并行
??? Next
??? rngSelect.Select
??? Application.ScreenUpdating = True
End Sub
專業(yè)的職場技能充電站
總結(jié)
以上是生活随笔為你收集整理的cxgrid 行合并单元格_【Excel VBA】如何批量撤销合并单元格?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali2020进入单模式_2021神途
- 下一篇: etcd 启动分析_Kubernetes