ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 用VBA对数据进行拆分

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-20 12:44 | 显示全部楼层

谢谢老师无私帮助

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-20 12:45 | 显示全部楼层
grf1973 发表于 2024-5-20 09:50
用JSA做了一下,练习练习。

真厉害!学习了

TA的精华主题

TA的得分主题

发表于 2024-5-20 13:18 | 显示全部楼层
本帖最后由 一招秒杀 于 2024-5-20 13:33 编辑
cnmlgb9998 发表于 2024-5-20 09:15
PQ解决方案,香不香???????

SQL 用了个第3方组件,也仅需1句3行, 也很香哦

更新为楼主的数据。
SQLNet.png

TA的精华主题

TA的得分主题

发表于 2024-5-20 13:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一招秒杀 发表于 2024-5-20 13:18
SQL 用了个第3方组件,也仅需1句3行, 也很香哦

你这结果 都不对啊!

TA的精华主题

TA的得分主题

发表于 2024-5-20 13:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 一招秒杀 于 2024-5-20 13:34 编辑
cnmlgb9998 发表于 2024-5-20 13:22
你这结果 都不对啊!

是原始数据问题,你的数据 和 举例的数据 不同而已。已经更新为和你一样的示例数据

TA的精华主题

TA的得分主题

发表于 2024-5-20 15:09 | 显示全部楼层
参与一下:
Sub test()
    s = ActiveSheet.[A1]
    s1 = Split(s, ".")
    For i = 0 To UBound(s1)
        If Len(s1(i)) > 1 Then
            s1(i) = Replace(s1(i), Left(s1(i), 1), Left(s1(i), 1) & ",")
        End If
    Next
    s2 = Split(Join(s1, ","), ",")
    ActiveSheet.[A10].Resize(1, UBound(s2) + 1) = s2
End Sub

TA的精华主题

TA的得分主题

发表于 2024-5-20 19:58 来自手机 | 显示全部楼层
一招秒杀 发表于 2024-5-20 13:18
SQL 用了个第3方组件,也仅需1句3行, 也很香哦

更新为楼主的数据。

啥第三方组件?

TA的精华主题

TA的得分主题

发表于 2024-5-20 20:11 来自手机 | 显示全部楼层
//select *,regreplace('\.|(?<=\D)(?=\d)','-',f01) from 正则表达式拆分单元格 limit 20;
cli_split_data~正则表达式拆分单元格~\.|(?<=\D)(?=\d)~f01;
cli_no_header;

select group_concat(f01,'</td><td>') from 正则表达式拆分单元格split group by (rowid-1)/10;

Screenshot_2024-05-20-20-09-21-596_com.mmbox.xbrowser.pro.jpg

TA的精华主题

TA的得分主题

发表于 2024-5-20 23:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-20 23:28 | 显示全部楼层
JSA练手
  1. function splitStr(){
  2.         var ar=Range('a1').Value2.match(/\d+|[A-Z]+/g);
  3.         br=[ar.slice(0,ar.length/2),ar.slice(ar.length/2)];
  4.         Range('A15').Resize(br.length,br[0].length).Value2=br;
  5. }
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 11:33 , Processed in 0.036838 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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