分享好友 办公首页 办公分类 切换频道

实现分列的两段excel vba 分列代码

2020-11-20 17:56浙江1850
内容提要:共享两段excel vba 分列代码实现不规则数据源的分列。

excelvba分列多用于一般常规的分列操作完成不了的情况。

Excel内置的分列,仅用于有规律的数据进行分列。比如下面的截图,这样的数据源,分列就可以考虑使用excelvba分列完成。

A列数据源,要将汉字和数字分列后的效果如B:D列。

下面是两段excelvba分列的代码,案例和答案来自论坛版主。

第一段excelvba分列的代码:

Subvba分列()
   DimoJsAsObject,rngAsRange
   SetoJs=CreateObject("scriptControl"):oJs.Language="Jscript"
   oJs.eval"functiongets(str){returnstr.replace(/(\d+)/,'$1')}"
   ForEachrngInRange("A2",[A65536].End(3))
       rng(1,2).Resize(1,3)=Split(oJs.codeobject.gets(rng.Value),"")
   Next
EndSub


第二段excelvba分列的代码:

Subvba分列()
   Dimarr,i%,brr(),smaAsObject
   arr=Range("a2:a"&Cells(Rows.Count,1).End(3).Row)
   ReDimbrr(1ToUBound(arr),1To3)
   WithCreateObject("vbscript.regexp")
       .Global=True
       .Pattern="([^\d]+)(\d+)(.+)"
       Fori=1ToUBound(arr)
           Setsma=.Execute(arr(i,1))(0).submatches
           brr(i,1)=sma(0)
           brr(i,2)=sma(1)
           brr(i,3)=sma(2)
       Next
   EndWith
   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
   Setsma=Nothing
EndSub

代码使用方法,在excel中,按下ALT+F11,打开VBE编辑器,单击插入――模块,复制上面任意一段代码,按F5键运行即可完成分列。

点赞 0
反对 0
举报
收藏 0
打赏 0
评论 0
分享 11
更多相关评论
暂时没有评论,来说点什么吧
SUM函数从易到难实战交流
SUM函数使用共分为四大类:简单求和,生成序列,文本计数求和,数组扩展求和。

0评论2024-03-24571

工程项目经济评价的基本方法
投资项目评价的经济指标一般可以分作三大类:第一类是以时间单位计量的时间型指标,如投资回收期;第二类是以货币单位计量的价值

0评论2022-04-172131

EXCEL统计字符出现次数的方法
我们已经知道使用简单的公式=COUNTIF或=COUNTIFS,来统计单元格区域某个值的出现次数,那么针对同一单元格,如何统计某字符串的

0评论2020-11-242263

计算机二级考试题库之Excel选择题(七)
在Excel中,要显示公式与单元格之间的关系,可通过以下方式实现

0评论2020-11-202222

计算机二级考试题库之Excel选择题(六)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第11道和第12道题目。

0评论2020-11-202391

计算机二级考试题库之Excel选择题(五)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第9道和第10道题目。第9题:以下错误的Excel公式形式

0评论2020-11-201759

计算机二级考试题库之Excel选择题(四)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第7道和第8道题目。第7题:小刘用Excel 2010制作了一

0评论2020-11-201126

计算机二级考试题库之Excel选择题(三)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第5道和第6道题目。第5题:在Excel某列单元格中,快

0评论2020-11-201130

计算机二级考试题库之Excel选择题(二)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第3道和第4道题目。第3题:小金从网站上查到了最近一

0评论2020-11-202069

计算机二级考试题库之Excel选择题(一)
继续我们的计算机二级office题库练习,今天开始是Excel软件的选择题。今天的第1道和第2道题目。第1题:在Excel工作表中存放了第

0评论2020-11-202364