作者:绿色风
分类:
时间:2022-08-17
浏览:110
楼主 kevinchengcw |
Q: 如何用vba代码将单元格文本数据段中有下划线部分增加分列时重复次数? A: 代码如下:- Sub test()
- Dim Rng As Range, RA As Range, Str$, N&, I&, Arr
- Set RA = Range([a3], Cells(Rows.Count, 1).End(3)) '设定源数据区
- For Each Rng In RA '循环源数据区各个单元格
- If Trim(Rng.Value) <> "" Then '如果是有效数据,则
- Arr = Split(Rng.Value, "/") '将单元格值依指定字符拆分放入数组中
- I = 1 '初始化字符位置变量为第一个字符
- For N = LBound(Arr) To UBound(Arr) '循环数组各项
- Str = Arr(N) '将当前数组项内容赋值给变量
- If Rng.Characters(I, 1).Font.Underline <> xlUnderlineStyleNone Then Arr(N) = Str & vbTab & Str '如果当前循环到的字符位置在单元格中有下划线,则将单元格内容复制一份并以tab字符间隔
- I = I + Len(Str) + 1 '到下一个数组项内容字符起始位置
- Next N
- Rng.Offset(, 1) = Join(Arr, vbTab) '将数组项以tab字符串接后赋值到结果区第一列
- End If
- Next Rng '循环到下一单元格
- Application.DisplayAlerts = False '关闭警告信息,这样覆盖其他数据时不会出现提示
- RA.Offset(, 1).TextToColumns Tab:=True '结果区进行分列操作,以tab作为分割字符
- Application.DisplayAlerts = True '打开警告信息
- End Sub
详见附件及素材源帖。 复件 44.rar |
2楼 亡者天下 |
跟K哥学习VBA |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一