企业名称:桐城市南口新型建材有限公司
联系人:崔经理
电话:0556-6568069
手机:18156911555
邮箱:303927413@qq.com
地址:桐城市龙腾街道高桥村
网址: www.nkxxjc.com
企业名称:桐城市南口新型建材有限公司
联系人:崔经理
电话:0556-6568069
手机:18156911555
邮箱:303927413@qq.com
地址:桐城市龙腾街道高桥村
网址: www.nkxxjc.com
Excel-VBA
取消单元格合并、并填充
应⽤场景
拆分合并的单元格并填充内容
知识要点
1
:
Application.FindFormat
属性
设置或返回要查找的单元格格式类型的搜索条件
2
:
Find
⽅法按照格式
(
合并单元格
)
查找
3
:
.MergeArea
对合并区域进⾏取消合并、填充处理
解决⽅案,将查找格式设置为
mergecells = true ,
然后调⽤
range.find
⽅法按格式查找合并单元
格。每找到⼀个就将他取消合并,
且将该合并区域
mergearea
中所有单元格赋值为原合并区域左上⾓单元格的值,拆分后左上⾓单
元格的值即为合并状态下的值,然后通过
do loop
循环继续按格式查找
直到找不到合并单元格时退出循环。
Sub
拆分合并单元格且填充数据
()
Dim Findstr As String, Rng As Range
Application.FindFormat.Clear '
清除原有格式
Application.FindFormat.MergeCells = True '
查找合并单元格
Application.ScreenUpdating = False '
关闭屏幕刷新
Application.Calculation = xlCalculationManual '
⼿动计算
With Cells
Set Rng = .Find(what:='', LookIn:=xlFormulas, lookat:=xlPart, searchformat:=True) '
按格式
查找
If Rng Is Nothing Then MsgBox '
没有合并单元格
': Exit Sub
Do
With Rng.MergeArea '
对找到的单元格的合并区域进⾏操作
.MergeCells = False
.Value = Rng.Value
End With
Set Rng = .Find(what:='', after:=Rng, searchformat:=True) '
查找下⼀个
If Rng Is Nothing Then Exit Do '
如果找不到则退出循环
Loop
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic '
恢复⾃动计算