excel学习库

excel表格_excel函数公式大全_execl从入门到精通

EXCELVBA拆分中文英文按列排放

需求:

把左边的变右边

中文英文分开存放

个人觉得

还是正则简单粗暴些

有些高手用函数公式完成

确实有两下子

---

代码:

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接