前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA批量合并或取消单元格

ExcelVBA批量合并或取消单元格

作者头像
哆哆Excel
发布2022-10-25 12:59:59
2K0
发布2022-10-25 12:59:59
举报
文章被收录于专栏:哆哆Excel

【问题】烦人的合并单元格,我们在进行vlookup、sum等计算中最怕就是遇到神人交过来的表格,

【解决】如果用手工进行取消合并单元格,时间多,

还是用VBA来解决吧!

一、合并单元格

=====代码==========

Sub 输入列进行合并单元格()

Dim rng_in As Range

Dim col_in, i%

Setrng_in = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8)

col_in = rng_in.Column

MsgBox "你将对第 " & col_in &" 列进行合并单元格"

Application.DisplayAlerts = False

For i = Cells(Rows.Count, col_in).End(xlUp).Row To 2 Step -1

If Cells(i, col_in).Value = Cells(i - 1, col_in).Value Then

Cells(i - 1, col_in).Resize(2, 1).Merge

With Cells(i - 1, col_in)

.VerticalAlignment = xlCenter

.HorizontalAlignment = xlCenter

End With

End If

Next

Application.DisplayAlerts = True

End Sub

===效果图=====

二、取消合并单元格并填充

1. 选定列取消合并单元格并填充

=====代码==========

Sub 选定列取消合并单元格并填充()

Dim rng_in As Range

Dim col_in, i%

Set rng_in = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8)

col_in = rng_in.Column

MsgBox "你将对第 " & col_in &" 列进行取消合并单元格"

With Columns(col_in)

.UnMerge

.SpecialCells(4) = "=R[-1]C"

.Value = .Value

End With

End Sub

===效果图=====

2.选定的区域取消合并单元格并填充

=====代码==========

Sub 选定的区域取消合并单元格并填充()

Dim rng_in As Range

Dim col_in, i%

Dim Rng As Range, V As Range

Set rng_in = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8)

For Each Rng In rng_in

If Rng.MergeCells Then

Set V = Rng.MergeArea

Rng.MergeCells = False

V.Value = Rng.Value

V.HorizontalAlignment = xlCenter

End If

Next

End Sub

===效果图=====

=========学习中===========

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档