目录
Range的Merge方法合并单元格
VBA运行时关闭警告
多行中相同的内容处理
示例:
Range的Merge方法合并单元格
单元格对象的Merge方法可以用来合并相邻的单元格区域,使之成为一个更大的矩形单元格区域。其语法为
Range.Merge
当需要取消合并单元格时,则使用UnMerge方法。
可以使用循环结构,不断判断是否与之前的部门相同,若相同,则利用Union方法将其添加至所需合并的单元格区域的并集中来。若不相同,则先用Merge将之前的单元格进行合并,然后重新获取当前的部门信息。
VBA运行时关闭警告
当对单元格区域进行合并操作时,Excel 一般会出现如图所示的警告。在VBA运行过程中,由于需要对多个区域进行合并,该警告的出现将会变得非常恼人。
因而,当VBA代码可能导致出现一些警告信息时,开发者应先关闭警告信息。在VBA中,可以使用Excel程序对象(Application)的DisplayAlerts属性来关闭或开启警告信息,其值可为True或者False,分别表示开启或关闭警告信息。
一般,该关闭警告信息的语句放置于程序的开始,而在程序运行结束后,需要将警告信息再一次开启,否则用户将在正常操作时收不到任何警告信息而造成一些不必要的问题。
多行中相同的内容处理
当数据按照某列排序完成后,可以以该列为关键字对相同的信息进行批量处理,比如合并、分类求和、插入汇总行等。通常采用本例所示的循环结构,如图所示多行处理流程图。
示例:
当制作某些报表时,需要将一些内容相同的单元格进行合并。如图所示,该表为各部门的工资信息,现已经将数据按照部门进行排序。能否利用VBA将A列中部门相同的单元格进行批量合并?
Option ExplicitSub 合并相同的单元格()Dim strDep As StringDim RowN As IntegerDim Rng As RangestrDep = Cells(2, 1).ValueSet Rng = Cells(2, 1)'关闭警告提示Application.DisplayAlerts = FalseFor RowN = 2 To 26If strDep = Cells(RowN, 1).Value ThenSet Rng = Union(Rng, Cells(RowN, 1))ElseRng.MergestrDep = Cells(RowN, 1).ValueSet Rng = Cells(RowN, 1)End IfNextApplication.DisplayAlerts = TrueEnd Sub
如果觉得《Excel VBA 入门 033 批量合并相同的单元格》对你有帮助,请点赞、收藏,并留下你的观点哦!