Excel VBA 7.71按照类别插入空行,插入多个合计项就这么简单
按照类别插入空行,插入多个合计项就这么简单
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
今天我们继续来玩转下工作表的行列,之前我们插入行列的时候都是随机插入的,并没有说一定要达到什么样的目的,在日常的工作中使用的比较的少,那么今天我们就来接触一个日常工作表中比较常用的功能,也是和插入行列有关的,今天我们要按照类别来插入空行,相同类别才会插入一个空行,然后就可以添加合计、汇总等相应的字段了。
场景说明
这就是我们今天大致要形成的一个效果,按照班级列来进行区分,当前后两个班级不同的时候,我们就在中间插入一个空行,并且设置一个汇总的字段
代码区
Sub kongh()
Dim rng As Range, Frng As Range, a As Range, trng As Range
Set rng = Application.InputBox("请选择参照行", "参照行的选择", , , , , , 8)
Set Frng = rng(1)
k = 0
For Each a In rng.Offset(0.1)
If a <> Frng Then
k = k + 1
If k = 1 Then
Set trng = a
Set Frng = a
Else
Set trng = Union(trng, a)
Set Frng = a
End If
End If
Next a
trng.Select
trng.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
trng.Offset(-1, 0).Value = "合计"
l = Cells(Rows.Count, rng.Column).End(xlUp).Row
Cells(l + 1, rng.Column) = "合计"
End Sub
从上面的动图中可以看出来,代码已经成功的实现了我们的要求,按照类别,也就是班级列进行区分,一旦出现不同就插入一行,并且增加一个字段,叫做合计
这样我们就可以轻松的针对每个班级的成绩进行汇总了,省去了不断手工插入的麻烦。
代码解析
来看看今天的代码解析
其实老实说,今天的代码并不算很难,相反如果前面学习的足够的细致的话,本节还是非常的简单的,我们这里里利用的知识点都是前面接触过的,比方说判断类别前后是否相同
在之前我们拆分工作表的也运用了很多次这样的方法了,通过设置起始单元格,然后在循环的过程中,不断的和起始单元格进行判断,直到碰到不一样的单元格
找到了目标单元格之后,我们就需要立刻初始化起始单元格,然后再次进行新的循环一次类推,这样我们就到了每一个不同类的起始单元格了。
有了这一个个的起始单元格,然后就可以利用前几天刚刚学习过的插入空行的方式,在每个单元格的上方插入一个空行,并且针对单元格内容进行操作
增加合计字段,用自动的方式代替手工输入,大大的提升了效率。虽然就是简单的插入几行,并且添加一个字段
用VBA操作,速度要快10倍,而且准确无误!
==========================