ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何简化连续编号

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-10 17:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
能解决的自己一个一个解决一下,也算抛砖引玉:
‘带字母数字排除序:
  1. Function SortStr(str As String) As String     '
  2. Dim sr, ar(0 To 10000), r, c, i, j, k     '按数字的最大值,自行修改ar的数组上限
  3. Dim s As String, ss As String, t
  4. sr = Split(str, ",")
  5. For t = 0 To UBound(sr)
  6.     k = ExtNum(sr(t))
  7.     If ar(k) = "" Then ar(k) = sr(t) Else ar(k) = ar(k) & "," & sr(t)
  8. Next
  9. For j = 0 To UBound(ar)
  10.     If ar(j) <> "" Then
  11.        If s = "" Then s = ar(j) Else s = s & "," & ar(j)
  12.     End If
  13. Next
  14. SortStr = s
  15. End Function
  16. Sub tt()
  17. Dim str As String
  18. 'str = "A9,A29,A30,A32,A10,A19,A3,A7,A8,A15,A18,A20,A28"
  19. str = "3A,7A,8A,9A,10A,15A,18A,19A,20A,28A,29A,30A,32A"
  20. Debug.Print SortStr(str)
  21. End Sub
复制代码

' 全角标点符号转半角标点符号
  1. Public Function q2b(t)
  2.     Dim arr, BRR, i&
  3.     arr = Split(", \ . ! ? ; : ' ' "" "" [ ] { } ( )")
  4.     BRR = Split(", 、 。 ! ? ; : ‘ ’ “ ” 【 】 { } ( )")
  5.     For i = LBound(BRR) To UBound(BRR)
  6.         't = Replace(t, ARR(i), BRR(i))
  7.         t = Replace(t, BRR(i), arr(i))
  8.     Next i
  9.     q2b = t
  10. End Function
  11. Sub ttt()
  12. Dim str As String
  13. str = "QW,ER、TY。UI!OP?AS;DF:GH‘JK’L“ZX”CV【BN】M{00}1(99)"
  14. Debug.Print q2b(str)
  15. End Sub
复制代码

结合 ExtNum 提取数字自定义函数使用
  1. Function ExtNum(str As Variant) As Integer    '
  2.     Dim reg, sr, h As Integer, mh
  3.     Set reg = CreateObject("vbscript.regexp")
  4.     reg.Global = True
  5.     reg.Pattern = "[0-9,.]+"
  6.     Set sr = reg.Execute(str)
  7.     For Each mh In sr
  8.         h = mh
  9.     Next
  10.     ExtNum = h
  11. End Function
  12. Sub tttt()
  13. Dim str As String
  14. str = "44AH"
  15. Debug.Print ExtNum(str)
  16. End Sub
复制代码


一个小问题,用到的知识点还不少
再次感谢各位老师!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-13 14:39 , Processed in 0.023992 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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