需求:
把左边的变右边

中文英文分开存放
个人觉得
还是正则简单粗暴些
有些高手用函数公式完成
确实有两下子
---
代码:
Sub SplitChineseAndEglish()
Dim brr(1 To 10, 1 To 10)
arr = Range("A1").CurrentRegion
Set reg = CreateObject("VBSCRIPT.REGEXP")
With reg
.Global = True
.Pattern = "([\u4e00-\u9fa5]+)([a-z]+)"
End With
For i = 1 To UBound(arr)
Set ma = reg.Execute(arr(i, 1))
For Each m In ma
For x = 0 To m.submatches.Count - 1
k = k + 1
brr(i, k) = m.submatches(x)
Next
Next
k = 0
Next
Range("b1").Resize(10, 10) = brr
End Sub
---
代码解释
Dim brr(1 To 10, 1 To 10)
定义了一个数组
准备用来装结果
10行10列
你的数据未必是10行10列
因为懒得想-省点脑细胞
你只要给得够大就行
数据多10改100,1000,10000
---
.Pattern = "([\u4e00-\u9fa5]+)([a-z]+)"
这里修改正则
中文英文数字
要啥改啥
一通百通
---
K=0
这是一个技巧
注意放的位置
很多人代码跑的不对
就死在这里
---
Range("b1").Resize(10, 10) = brr
得到结果以后写入EXCEL
