小伙伴们好,今天和大家分享一道有趣的题目。
题目的要求是,在一列数据中,比如单元格区域A2:A31中,从单元格A2开始向下累加。如果累加的结果等于一个给定的值,比如说,5,则从下一个单元格重新开始累加。
题目要求就是这么多。
这类题目应用的场景很多,经常会看到朋友们在各大论坛上题类似的问题。但是这道题目用函数公式是无法解决的,必须要用到VBA。
下面就分享一则大神群友提供的代码吧!
首先打开VBA编辑器,你可以按下Alt+F11键,或者在工作表名单击右键,再单击查看代码进入。
进入后单击【插入】-【模块】,如下图。
单击模块1,开始书写代码。
完整的代码如下。
Sub test()
Dim arr(), i As Integer
Dim key
key = 5 '指定的数字
arr() = Range("A2:B31").Value
arr(1, 2) = arr(1, 1)
For i = 2 To UBound(arr)
If arr(i, 1) + arr(i - 1, 2) <> key Then
arr(i, 2) = arr(i, 1) + arr(i - 1, 2)
Else
arr(i, 2) = arr(i, 1) + arr(i - 1, 2)
i = i + 1
arr(i, 2) = arr(i, 1)
End If
Next i
Range("A2:B31").Value = arr()
End Sub
输入完成后保存即可。
接下来我们运行代码。
单击图中的箭头,代码将自动运行。
图中涂黄色的单元格即是满足条件后,重新开始累加。
最后,记得要将文件保存为“.xlsm”的格式,即启用宏的文件格式。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
特殊的文本数字型字符串提取,这两个方法都挺好用的!
三两个平淡无奇的小函数,三分钟解决工作中的大问题,财务妹子再也不用熬夜加班了!
谁说不同模块函数不能融会贯通?财务函数都跨界搞排序了!
POWER QUERY--从列数据中提取字符
基础篇--数组的运算规则
有话要说...