小夥伴們好,今天和大家分享一道有趣的題目。
題目的要求是,在一列數據中,比如單元格區域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--從列數據中提取字符
基礎篇--數組的運算規則
有話要說...