VBA小试一哈

题目

把年级列合并,合并后把总分汇总。
在这里插入图片描述


思路:

先是啰嗦话:
首先是对年级列进行合并,逻辑就是判断这一个的值是否等于上个值,由于excel的机制,合并单元格后会保留最上面的值,所以如果从上面判断的话,直接就断了,第二个值就是空值了,所以我们要从下面开始判断。
其次呢由于年级列相同的年级并没有挨着出现,所以如何直接合并,就是上面一坨二年级,中间一坨一年级,下面再一坨二年级,所以要对年级进行排序,让一年级的在一坨,二年级的在一坨。
然后合并了年级,我们还需要对总成绩汇总累加。
最后关闭提示,运行完后别忘了开起提示

总结:
1.对年级列排序(sort)
2.对年级列合并(merge)
3.对汇总列累加
4.关开提示

代码

'合并单元格
Sub 合并单元格()
'首先定义我们的参数
Dim a, b As Long
Dim c, last_row As Byte
Dim d As Range
'因为合并单元格的时候会有提示,所以这里关闭这个提示
Application.DisplayAlerts = False
'定位到q的边界行数
last_row = Cells(Rows.Count, "q").End(xlUp).Row
'申明一个单元格
Set d = Range("q1").CurrentRegion
'对这个单元格中的q列进行排序
d.Sort Cells(2, "q"), 1, Header:=1
'从最下面那行开始循环,步长-1,逐步向上
For c = last_row To 2 Step -1
    '进行累加操作
    Cells(c, "w") = Cells(c, "v").Value + Cells(c, "w")
    '如果循环中的这一单元格的值等于上一个单元格的值
    If Cells(c, "q").Value = Cells(c - 1, "q").Value Then
        '合并这两个单元格
        Range(Cells(c, "q"), Cells(c - 1, "q")).Merge
        '合并汇总单元格
        Range(Cells(c, "w"), Cells(c - 1, "w")).Merge
    End If
Next c
'打开提示
Application.DisplayAlerts = True
End Sub

结果

在这里插入图片描述

总结

能运行。

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值