1 救命!表格行数天天变,求和公式也要天天改?
相信在办公室处理 Excel 的时候,经常会遇到这个烦恼: 明明写好了求和公式,但「昨天」的报表有100 行,「今天」变成了150 行。如果还在手动修改公式范围,或者每次都重新拉一遍 SUM 函数,那效率可真太低。今天要介绍一台 Excel VBA 里的「扫描仪」—— 「CurrentRegion」,让电脑学会自己找表格边界。
2 何为 CurrentRegion?
简单来说,CurrentRegion就是以某个单元格为中心,自动向外扩散,直至遇到「空白行」或「空白列」为止。它能帮你自动选中整个连续的区域。它的核心优势是:无论表格怎么变长、变宽,它都能精准抓取,一个都不漏。
3 实战:一键自动汇总功能
假设有一份销售清单,A列是日期,B列是金额,行数每天都在增加。我们来写一个自动在表格底部添加「合计」的工具。Sub 自动汇总表格() Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Dim lastCol As Long Set ws = ActiveSheet ' 1. 使用 CurrentRegion 自动抓取以 A1 为首的整个连续表格 Set rng = ws.Range("A1").CurrentRegion ' 2. 获取表格最后一行的行号和最后一列的列号 lastRow = rng.Rows.Count lastCol = rng.Columns.Count ' 3. 在表格下方添加“合计”字样 ws.Cells(lastRow + 1, 1).Value = "合计" ' 4. 自动为数值列添加求和公式(假设从第2列到最后一列都是数字) Dim i As Integer For i = 2 To lastCol ' 动态生成 SUM 公式,范围从第2行一直到数据最后一行 ws.Cells(lastRow + 1, i).FormulaR1C1 = "=SUM(R2C:R" & lastRow & "C)" Next i ' 5. 美化:给合计行加个粗 ws.Rows(lastRow + 1).Font.Bold = True MsgBox "汇总完成!"End Sub
4 为何这个功能超好用?
- 动态自适应:不管今天录入了 10 条还是 10,000 条数据,代码一行都不用改,点一下就能精准求和。
- 告别手动档:再也不为「最后一行」在哪儿而滑鼠标到手酸。
- 显现专业度:把这段代码绑定到一个按钮上,同事还在手动拉公式时,你已经一秒收工,优雅地起身去接咖啡了。
5 结语
办公室效率化的核心,不是做更多的工作,而是「将重复的操作交给机器」。 学会使用 「CurrentRegion」,让 Excel 学会自己观察数据,才能真正从繁琐的表哥表姐生涯中解放出来!
- 在 Excel 按 Alt + F11 打开 VBA 编辑器。