前言前期讲了如何将合并单元格打散并快速填充到每个空白单元格,今天讲一下反向操作。 1要合并的单元格数量相同的情况此类情况,比较好解决,只要将第一组合并,然后用格式刷,一刷就搞定了。 2要合并的单元格数量不同的情况此类情况用格式刷就刷不了了,只能手动合并,但如果会点VBA,哪就是分分钟的事。 直接上代码:\'后面为注释。 Sub 合并相同单元格() Application.DisplayAlerts = False \'关闭警告和消息 Dim i As Integer \'设置i为整数类型 Dim first As Integer \'设置First为整数类型 Dim last As Integer \'设置Last为整数类型 first = InputBox("请输入开始合并的行号,如1,2,3...", "提示") \'显示输入对话框,要求输入开始行号 n = InputBox("请输入结束合并的行号,如1,2,3...", "提示") \'显示输入对话框,要求输入结束行号 C = InputBox("请输入要合并的列号,如A,B,C...", "提示") \'显示输入对话框,要求输入要合并的列号 For i = first To n Step 1 \'循环语句 If Range(C & i) = Range(C & i + 1) Then \'判断当前单元格和下一行单元格是否相同,如果相同,跳转到FLAG出,进行下一个循环 GoTo FLAG: Else \'如果当前单元格和下一行单元格不同,则将当前单元格的行号赋予Last last = i Range(C & first & ":" & C & last).Select \'选择相同的单元格 With Selection .MergeCells = True \'合并选择单元格区域 End With first = i + 1 \'行号下移一行,开始新的循环 End If FLAG: Next Application.DisplayAlerts = True \'打开警告和提醒功能 End Sub 操作步骤: 1.alt+f11,打开VBA编辑器,新建一模块,将上述蓝色代码复制到模块中,为了学习深刻,最好手动输写一遍代码,注释可以不写,不影响运行。 2.运行代码,在弹出的对话框中输入要合并的起始和结束行数,以及要合并的列号。 3.程序继续运行,合并瞬间完成。 是不是很神速,等什么,赶紧打开电脑,打开EXCEL,打开VBA码,一起嗨起来,原来你也可以的,VBA其实并不难! END |
|