ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3609|回复: 2

自动更新序号(插入/删除行)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-1-4 14:56 | 显示全部楼层 |阅读模式
image.png
大家应该遇到过「增加/删减」行的情况,序号往往需要重新编辑,非常麻烦,我提供3个方法给大家,仅供参考。
一、函数:b=a+1
假设我所有的例子都是从B3开始排序的,那么:
①B3=1;
②B4=B3+1。
③下拉或者双击B4右下角,自动扩展公式。
优点:公式容易理解,在删减行时很完美;
image.png
缺点:B3要设置常数起始值,自身不好改变;插入空行不好处理;如上图,筛选后即为灾难(与常数值有关)

二、函数:b=row(a)-x
①B3=row(B3)-2
②扩展公式
解释:row(a)取该单元格行号,再看看它与你的目标(1)相差多少,相减即可
image.png
优点:删减行,筛选都没问题(但不会与以前一一对应,a-1,b-2……);
缺点:增加行仍需手动扩展公式。

三、VBA:



Sub 更新序号()
Dim i, k As Integer
For i = 3 To Range("B65536").End(xlUp).Row
    Range("B" & i) = k + 1
    k = k + 1
Next i
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False                        '自动触发+录入时间,所以先禁用事件
    If Application.Intersect(Target, Range("B3:B65536")) Is Nothing Then Exit Sub   '重新定义改变范围(单元格→区域);如果没有数据录入,不执行时间
        Call 更新序号                                                               '执行更新序号程序
Application.EnableEvents = True                         '重新执行自动事件
End Sub



image.png
优点:随便折腾都无所谓,数据量大时效果更过瘾,保证效率与正确率的神技!;筛选后1234和abcd都是对应的;
image.png
缺点:筛选后,若序号单元格发生更改(主动or误触),将会发生不可撤回的重新排序操作,建议操作前保存文档,或建立备用数据库,或增加代码完整性(如,if 排序操作,then 不执行call等等);
另外的一个不算缺点的缺点——要学习VBA,尤其是用WPS的朋友。


总结:
1.不管黑猫白猫抓到猫就是好猫。如果实际不懂公式,手动Ctrl下拉12345也是可以的,重要的是把事情给搞妥当了;
2.无论哪种方法,都会有其缺陷。有的缺陷可以通过补完细节完成(如嵌入更多函数),有的则不可以(函数的灵活性和自由度较VBA低),实际使用时应灵活应用。

如果你也有其他的方法,欢迎留言给大家参考学习噢,分享让1+1>2;
如果这帖子能启发你解决问题,评论点赞啥的给一给支持个呗~

TA的精华主题

TA的得分主题

发表于 2023-5-31 12:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
老师,您这张工作表如何根据序号对应的d列是否有内容自动更新序号呢,增加或者删除行都能自动更新,根据d列单元格是否内容触发事件,代码能在对应的工作表内最好,因为只应用于一个工作表

TA的精华主题

TA的得分主题

发表于 2023-5-31 14:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=row()-row(标题行)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 08:26 , Processed in 0.039568 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表