Excel多工作表中单元格B2数值自动递增的高效实现方法
嘿,手动逐个改工作表的痛苦我太懂了!给你两种高效解决方式,看你更习惯哪种:
方案一:无代码公式法(简单快捷)
这个方法不用碰代码,靠Excel自带函数就能搞定,而且是动态联动的——如果第一个工作表的B2值改了,后面所有表的B2会自动跟着更新:
- 先选中除第一个工作表之外的所有工作表:按住
Ctrl键,逐个点击底部的工作表标签(如果是连续的非首表,按住Shift点第一个和最后一个即可) - 在选中状态下,当前表的B2单元格输入公式:
=90 + (SHEET() - 1) - 按下回车,所有选中的工作表B2会自动填充对应递增的值!
原理说明
SHEET()函数会返回当前工作表在工作簿里的位置序号(第一个表是1,第二个是2,以此类推)。用初始值90加上(位置序号-1),刚好就是你要的递增效果——哪怕工作表名字是乱七八糟的,只要顺序符合你的要求,结果就不会错。
方案二:VBA宏批量赋值(适合超多工作表的场景)
如果你的工作表特别多,或者想要固定值(不随首表B2改动而变化),可以用VBA一键搞定:
- 打开Excel的「开发工具」选项卡(如果没看到,去「文件-选项-自定义功能区」勾选开发工具)
- 点击「Visual Basic」,在弹出的编辑器里,右键你的工作簿→「插入」→「模块」
- 粘贴下面的代码:
Sub AutoIncrementB2() Dim ws As Worksheet Dim startValue As Integer ' 读取第一个工作表的B2作为初始值 startValue = ThisWorkbook.Worksheets(1).Range("B2").Value ' 遍历所有工作表,从第二个开始赋值 For Each ws In ThisWorkbook.Worksheets If ws.Index > 1 Then ' 每个表的B2 = 初始值 + (表的位置序号 - 1) ws.Range("B2").Value = startValue + (ws.Index - 1) End If Next ws End Sub - 点击编辑器里的运行按钮(绿色小三角),或者按
F5,所有非首表的B2就自动填好了!
可选调整
如果你想让每个表的值是前一个表B2+1(而不是基于首表的固定递增),可以把代码里的赋值行改成:
startValue = startValue + 1 ws.Range("B2").Value = startValue
这样不管工作表顺序怎么调,重新运行宏都会按当前顺序递增加1。
内容的提问来源于stack exchange,提问作者DRUIDRUID
相关产品推荐
相关产品推荐

