1、 题目:
如下图所示,如何将A列单元格内容分单元格逐一显示呢?
2、 解题思路
首先分析A列单元格内容,发现他们具有如下特点:
1. 每个单元格内容均以空格分割开来,但是字符之间没有进行换行操作,也就是说他们处在同一行,这样的话就不能用\S(大写)进行拆分。
2. 单元格内容包括:汉字、空格、大写字母、数字,说明这是一个混杂字
符串,拆分的时候需要用到中文和数字字母元字符。
3、 VBE窗口
4、 代码分享
Sub 拆分单元格中的内容3()
Dim regx As Object, rng As Range, mat, k, n%
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "\S+"
For Each rng In [a1:a6]
Set mat = .Execute(rng)
For Each k In mat
n = n + 1
Cells(rng.Row, n + 2).Value = k
Next
n = 0
Next
End With
End Sub
5、 总结
这里设置了三种Pattern模式属性,他们达到了同样的效果,但是需要注意以下几点:
(1). [\u4e00-\u9fat]=[一-龢],代表中文字符,必须带[]。
(2). 第三种模式\S(大写)后面的量词下限不得超过3不得小于0,若大于3会漏选,如下图:
上限不要限制,比如使用?则会出现注意分散显示的情况,如下图:
这两种结果都不是我们多需要的。
(3). 本题解答中我们使用了嵌套循环,注意结尾处next语句的前后顺序,
本文暂时没有评论,来添加一个吧(●'◡'●)