Excel 自动分列实现一则
当一列中存放 1:n 数据,并使用特定符号分隔时,可使用“数据”-“分列”工具,将一个单元格内容依次分列。
例如:学生信息列表中,每个学生占据一行;学生的所选课程为表中一列,对于某学生选择的多个课程,各课程名使用特定符号分隔。
要简化分列操作,可采用VBA编写指令宏实现。
如下图所示,A列保存由分隔符分隔的数据,C1处指定分隔符,设置按钮,D列保存分列之后的数据:
按钮宏代码如下:
1 Sub 弄() 2 Dim SrcRi As Integer '定义用于遍历源数据的行索引 3 Dim TarRi As Integer '定义用于递增目标数据行的索引 4 SrcRi = 1 '初始化从1开始索引 5 TarRi = 1 '初始化从1开始索引 6 Dim MarkEnd As Boolean '定义用于外层循环结束的标记 7 MarkEnd = False '初始化标记为false 8 Dim Splitor As Variant '定义分隔符 9 Splitor = Cells(1, 3).Value '从单元格获取分隔符 10 While Not MarkEnd '进入外层循环,遍历源数据列 11 If IsEmpty(Cells(SrcRi, 1)) Then '判断当前遍历的源单元格是否为空 12 MarkEnd = True '为空则标记结束 13 Else 14 Dim Arr As Variant '定义保存分隔后字符串的数组 15 Arr = Split(Cells(SrcRi, 1), Splitor) '从当前遍历的源单元格分隔出字符串 16 For i = LBound(Arr) To UBound(Arr) Step 1 '进入内层循环,向目标列写入 17 Cells(TarRi, 4).Value = Arr(i) '向目标单元格写入一个分隔后的字符串 18 TarRi = TarRi + 1 '目标行索引加1 19 Next 20 End If 21 SrcRi = SrcRi + 1 '源行索引加1 22 'MsgBox SrcRi '调试用 23 Wend 24 End Sub
分类:
Others
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界