You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel多工作表中单元格B2数值自动递增的高效实现方法

嘿,手动逐个改工作表的痛苦我太懂了!给你两种高效解决方式,看你更习惯哪种:

方案一:无代码公式法(简单快捷)

这个方法不用碰代码,靠Excel自带函数就能搞定,而且是动态联动的——如果第一个工作表的B2值改了,后面所有表的B2会自动跟着更新:

  • 先选中除第一个工作表之外的所有工作表:按住Ctrl键,逐个点击底部的工作表标签(如果是连续的非首表,按住Shift点第一个和最后一个即可)
  • 在选中状态下,当前表的B2单元格输入公式:
    =90 + (SHEET() - 1)
    
  • 按下回车,所有选中的工作表B2会自动填充对应递增的值!

原理说明

SHEET()函数会返回当前工作表在工作簿里的位置序号(第一个表是1,第二个是2,以此类推)。用初始值90加上(位置序号-1),刚好就是你要的递增效果——哪怕工作表名字是乱七八糟的,只要顺序符合你的要求,结果就不会错。

方案二:VBA宏批量赋值(适合超多工作表的场景)

如果你的工作表特别多,或者想要固定值(不随首表B2改动而变化),可以用VBA一键搞定:

  1. 打开Excel的「开发工具」选项卡(如果没看到,去「文件-选项-自定义功能区」勾选开发工具)
  2. 点击「Visual Basic」,在弹出的编辑器里,右键你的工作簿→「插入」→「模块」
  3. 粘贴下面的代码:
    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
    
  4. 点击编辑器里的运行按钮(绿色小三角),或者按F5,所有非首表的B2就自动填好了!

可选调整

如果你想让每个表的值是前一个表B2+1(而不是基于首表的固定递增),可以把代码里的赋值行改成:

startValue = startValue + 1
ws.Range("B2").Value = startValue

这样不管工作表顺序怎么调,重新运行宏都会按当前顺序递增加1。


内容的提问来源于stack exchange,提问作者DRUIDRUID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:24:19