问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

实现分列的两段excelvba分列代码

发布网友 发布时间:2024-09-26 17:51

我来回答

1个回答

热心网友 时间:2024-10-04 17:05

excel vba 分列多用于一般常规的分列操作完成不了的情况。
  Excel内置的分列,仅用于有规律的数据进行分列。比如下面的截图,这样的数据源,分列就可以考虑使用excel vba 分列完成。
  A列数据源,要将汉字和数字分列后的效果如B:D列。
  下面是两段excel vba 分列的代码,案例和答案来自论坛版主。
  第一段excel vba 分列的代码:
Sub vba分列()
Dim oJs As Object, rng As Range
Set oJs = CreateObject("ScriptControl"): oJs.Language = "JScript"
oJs.eval "function gets(str){return str.replace(/(\d+)/,’ $1 ‘)}"
For Each rng In Range("A2", [A65536].End(3))
rng(1, 2).Resize(1, 3) = Split(oJs.codeobject.gets(rng.Value), " ")
Next
End Sub

  第二段excel vba 分列的代码:
Sub vba分列()
Dim arr, i%, brr(), sma As Object
arr = Range("a2:a" & Cells(Rows.Count, 1).End(3).Row)
ReDim brr(1 To UBound(arr), 1 To 3)
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "([^\d]+)(\d+)(.+)"
For i = 1 To UBound(arr)
Set sma = .Execute(arr(i, 1))(0).submatches
brr(i, 1) = sma(0)
brr(i, 2) = sma(1)
brr(i, 3) = sma(2)
Next
End With
Range("b2", Cells(Rows.Count, Columns.Count)).ClearComments
Range("b2").Resize(UBound(brr), UBound(brr, 2)).NumberFormat = "@"
Range("b2").Resize(UBound(brr), UBound(brr, 2)) = brr
Set sma = Nothing
End Sub
  代码使用方法,在excel中,按下ALT+F11,打开VBE编辑器,单击插入——模块,复制上面任意一段代码,按F5键运行即可完成分列。

热心网友 时间:2024-10-04 17:06

excel vba 分列多用于一般常规的分列操作完成不了的情况。
  Excel内置的分列,仅用于有规律的数据进行分列。比如下面的截图,这样的数据源,分列就可以考虑使用excel vba 分列完成。
  A列数据源,要将汉字和数字分列后的效果如B:D列。
  下面是两段excel vba 分列的代码,案例和答案来自论坛版主。
  第一段excel vba 分列的代码:
Sub vba分列()
Dim oJs As Object, rng As Range
Set oJs = CreateObject("ScriptControl"): oJs.Language = "JScript"
oJs.eval "function gets(str){return str.replace(/(\d+)/,’ $1 ‘)}"
For Each rng In Range("A2", [A65536].End(3))
rng(1, 2).Resize(1, 3) = Split(oJs.codeobject.gets(rng.Value), " ")
Next
End Sub

  第二段excel vba 分列的代码:
Sub vba分列()
Dim arr, i%, brr(), sma As Object
arr = Range("a2:a" & Cells(Rows.Count, 1).End(3).Row)
ReDim brr(1 To UBound(arr), 1 To 3)
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "([^\d]+)(\d+)(.+)"
For i = 1 To UBound(arr)
Set sma = .Execute(arr(i, 1))(0).submatches
brr(i, 1) = sma(0)
brr(i, 2) = sma(1)
brr(i, 3) = sma(2)
Next
End With
Range("b2", Cells(Rows.Count, Columns.Count)).ClearComments
Range("b2").Resize(UBound(brr), UBound(brr, 2)).NumberFormat = "@"
Range("b2").Resize(UBound(brr), UBound(brr, 2)) = brr
Set sma = Nothing
End Sub
  代码使用方法,在excel中,按下ALT+F11,打开VBE编辑器,单击插入——模块,复制上面任意一段代码,按F5键运行即可完成分列。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
奥迪a6l怎么用手机连接音响放歌,我的是华为 奥迪a6l蓝牙连接了,听歌没声音 2009年6月在农业银行办理30万等额本息为10年的商业房贷,7折,现在月供... 存量房贷七折七折政策 ...在农业银行贷款27万,等额本息打七折利率按揭20年,现在的利率每月应还... 我是第一套房,在农业银行不是公积金贷款27万元20年付清利息怎么算法... 在成都交通违章网上怎么办理的 成都违章罚款网上怎么交 成都交通违章罚款在哪里交 成都违章停车可以网上交罚款吗 ...但是上传了以后说是版权原因该视频不予审核是什么意思啊_百度... 梦见棉祅冒焑是什么原因 金丝熊屁股红肿怎么办? 哪个网站看电影最好最全? 哪种睡姿让你长得好看选择最适合你的睡姿 用4、6、7、9四个数分别组成无重复数字的两位数,要使这两个数相乘的积... 用4 5 6 7 8 9组成三个两位数让其差最大 用4,6,8三个数字可以组成几个不同的两位数 买车什么颜色最旺 冰是睡着的水经典句子 满足什么条件通过车贷 冰是睡着的水有什么含义呢 车贷必须具备什么条件 楚雄州机构编制委员会楚雄州机构编制委员会职能 请问在云南楚雄事业单位编织人员可以调到公务员系统的公务员岗位吗?谢 ... 亿在票据上用英文怎么写 史前时期中国建筑特征英文 时光的英语翻译时光用英语怎么说 在史前时代英文怎么写 廊坊保定旅游景点有哪些 家里的萨摩耶生病了。昨天有点流口水,今天舌头很红。请问是怎么回事?能... 想做实施→项目经理,请问wms仓储系统与erp(用友金蝶等财务 梦见恶鬼说拿命来的预兆 "叮咛"一词前面加上一个动词 53天萨摩耶幼犬拉稀,有点吐,是什么病啊?最重要的是,他体重偏轻,才4斤... f1赛车轮胎多少钱一条 华凌n8he1减配了吗(华凌n8he1怎么样?华凌n8he1空调评测) 买华凌n8he1还是买升级版 209÷28的竖式计算图片 209÷28的竖式计算图片? 等于多少?183÷28等于多少?竖式计算 170公斤机油卖2600元,那么一桶四升是多少钱 财政税务学哪个 发质不好烫发是冷烫好还是热烫好求专业人士解答 三星a9语音助手在哪里 大量收集高中特殊单词短语:单复数同形、常见不可数、无被动结构、无进行... 游戏登录密码指什么 在登录游戏时密码是什么 英语单复数同形的单词20个 《绝区零》的密码是什么?