ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 将一组掺杂着连续和不连续的以顿号隔开的序号组修改成序号1-序号n、序号n+1-序号n+...

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-27 17:51 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
将一组掺杂着连续和不连续的以顿号隔开的序号组修改成序号1-序号n、序号n+1-序号n+n这样
哪位大佬帮帮忙呀。感激不尽

text.png

TEST.rar

6.34 KB, 下载次数: 24

TA的精华主题

TA的得分主题

发表于 2023-6-27 19:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
练练手。。

test.rar

16.35 KB, 下载次数: 22

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-6-27 19:47 | 显示全部楼层
参与一下。。。

TEST.rar

18.19 KB, 下载次数: 13

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-6-27 20:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mark一下,居然老能见到这种拆分合并的需求,回头试试

TA的精华主题

TA的得分主题

发表于 2023-6-27 21:19 | 显示全部楼层
本帖最后由 吴中泉 于 2023-6-27 21:24 编辑

我能想到的笨办法 TEST.rar (13.09 KB, 下载次数: 6)

image.png


TA的精华主题

TA的得分主题

发表于 2023-6-27 21:20 | 显示全部楼层
  1. Sub ssjss() '2023.6.27 wzq
  2. Dim arr, brr(1), i, j, s1, s2
  3. j = 1
  4. For Each Cell In Range("A2:I2")
  5. arr = Split(Cell.Value, "编号")
  6. For i = 1 To UBound(arr) + 1
  7.      On Error Resume Next
  8.      s1 = arr(i - 1): s2 = arr(i)
  9.     If s1 <> "" Then
  10.        If Val(s1) = Val(s2) - 1 Then
  11.             brr(n) = "编号" & Replace(s1, "、", "")
  12.             n = 1: arr(i - 1) = ""
  13.         Else
  14.             If brr(0) <> "" Then
  15.                 arr(i - 1) = brr(0) & "-编号" & arr(i - 1)
  16.             Else
  17.                 arr(i - 1) = "编号" & arr(i - 1)
  18.             End If
  19.             n = 0: brr(0) = "": brr(1) = ""
  20.         End If
  21.     End If
  22. Next
  23. Cells(5, j) = Trim(Join(arr)): j = j + 1
  24. Next
  25. End Sub
复制代码


TA的精华主题

TA的得分主题

发表于 2023-6-28 00:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

  1. Sub test()
  2.     Dim ar(), br(), x$, k%
  3.     ar = Range("a2:i2").Value
  4.     ReDim br(1 To 2, 1 To 9)
  5.    
  6.     For k = 1 To 9
  7.         x = Mid(ar(1, k), 3)
  8.         x = MergeString(x, "、编号")
  9.         br(1, k) = "编号" & x
  10.         br(2, k) = "编号" & ExpandString(x, "、编号", "-编号")
  11.     Next
  12.     Range("a5:i6").Value = br
  13. End Sub

  14. Function MergeString(str0$, s0$) As String
  15.     Dim ar, br, i%, j%, k%, t, s1
  16.     ar = Split(VBA.StrConv(str0, vbNarrow), VBA.StrConv(s0, vbNarrow))
  17.     s1 = "-" & Mid(s0, 2)
  18.     ReDim br(0 To UBound(ar))
  19.     'SortArray ar
  20.     For i = 0 To UBound(ar)
  21.         t = Val(ar(i))
  22.         If i = 0 Then
  23.             br(0) = ar(i)
  24.             j = 0
  25.         ElseIf i = UBound(ar) Then
  26.             If t - Val(ar(i - 1)) = 1 Then
  27.                 br(i) = s1 & ar(i)
  28.             Else
  29.                 br(i) = s0 & ar(i)
  30.             End If
  31.         ElseIf t - Val(ar(i - 1)) <> 1 Then
  32.             If i - 1 = j Then
  33.                 br(i) = s0 & ar(i)
  34.             Else
  35.                 br(i - 1) = s1 & ar(i - 1)
  36.                 br(i) = s0 & ar(i)
  37.             End If
  38.             j = i
  39.         End If
  40.     Next
  41.     MergeString = Join(br, "")
  42. End Function
  43. Function ExpandString(str0$, s0$, s1$) As String
  44.     Dim ar, br, x, s$, i%
  45.     ar = Split(str0, s0)
  46.     For Each x In ar
  47.         br = Split(x & s1 & x, s1)
  48.         For i = Val(br(0)) To Val(br(1))
  49.             s = s & s0 & Format(i, "00")
  50.         Next
  51.     Next
  52.     ExpandString = Mid(s, Len(s0) + 1)
  53. End Function
  54. Function SortArray(ar)

  55. End Function
复制代码

TA的精华主题

TA的得分主题

发表于 2023-6-28 10:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
JS宏来凑一波热闹,这个问题还有点绕
image.png

TA的精华主题

TA的得分主题

发表于 2023-6-28 10:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件请参考,WPS测试

TEST-JSA.zip

12.84 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2023-6-28 11:40 | 显示全部楼层
TEST.zip (15.1 KB, 下载次数: 6)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 19:54 , Processed in 0.042110 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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