如何让Excel工作簿各工作表指定单元格同步显示递增编号?
解决方法
你当前的代码只会修改当前激活工作表的I6单元格,要让编号同步到所有工作表的同一位置,需要遍历工作簿内的所有工作表,并且要先计算好递增后的最终编号,再统一赋值给每个工作表的I6,避免重复累加。
修改后的代码如下:
Private Sub Workbook_Open() ' 以第一个工作表的I6值为基准,计算递增后的编号 Dim newNumber As Long newNumber = ThisWorkbook.Worksheets(1).Range("I6").Value + 1 ' 遍历所有工作表,同步设置I6的值 Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("I6").Value = newNumber Next ws End Sub
额外优化提示
如果工作簿里存在不需要同步编号的工作表,可以在循环中添加判断跳过,比如:
For Each ws In ThisWorkbook.Worksheets ' 跳过名为"模板页"的工作表 If ws.Name <> "模板页" Then ws.Range("I6").Value = newNumber End If Next ws
另外要确保初始状态下,至少有一个工作表的I6单元格是有效的数字(比如初始值设为1),否则会触发数值错误。
内容的提问来源于stack exchange,提问作者Eliand40
相关产品推荐
相关产品推荐

