小伙伴们好,今天和大家分享一道有趣的题目。 题目的要求是,在一列数据中,比如单元格区域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操作问题时不再迷茫无助 我就知道你“在看” |
|