发布网友 发布时间:2022-04-23 14:21
共3个回答
热心网友 时间:2022-05-03 10:55
那你的序号那一列不要写数字,写成公式
=row()
这个公式是得到这一行的行号、如果你的序号和这一行的行号有差别的话,可以
=row()+x x是指这一行的行号和你需要的序号的差值追问可是我的那些行是在表的中间的呀,比如我前面已经有很多行数了,我中间又从1开始排序的,这样又怎么弄呢?而且我插了一行后,新插的那行也不会自动编号呀
追答假设你从50行开始你的排序,你的第一序号就是=row()-49,然后这个就是第一行了
新插入的行本来就是新行,当然不会自动编号了,你可以从其他行复制粘贴一个公式到你插入的行啊
热心网友 时间:2022-05-03 12:13
序号用公式填充,如输入:
=row()
下拉。这样就可以自动变为新序号。
热心网友 时间:2022-05-03 13:47
按“ALT+F11”键进入代码编辑
复制以下代码到编辑窗口内:
Private Sub Worksheet_Change(ByVal Target As Range) '工作表变化事件引发下列程序
Application.EnableEvents = False '变化事件引发禁止
X0 = ActiveCell.Row 'X0=活动单元格行数
If X0 > 1 Then 'X0在2以上
Cells(X0, 1) = Cells(X0 - 1, 1) + 1 'X0行=X0-1行+1
Else: Cells(X0, 1) = 1 'X0为1时=1
End If '结束条件判断
Do While Cells(X0 + 1, 1) <> "" 'X0+1行非空则执行
Cells(X0 + 1, 1) = Cells(X0, 1) + 1 '单元格X0+1行=X0行+1
X0 = X0 + 1 'X0递增执行
Loop '返回while语句
Application.EnableEvents = True '变化事件引发开启
End Sub '结束程序
然后你返回工作表操作,得到你想要的结果。
PS:搞了半天了,已测试通过,给你分吧,偶不容易!