分享

VBA学习实践——用VBA实现Excel格数据分列功能

 L罗乐 2018-10-07

   前一段时间在网上看到有人提问怎么将储存在单元格内的以逗号作为分割符的多个字符串提取到多个单元格中,大概的效果如下图

   解决这个问题最简单的方法就用Excel数据分列的方法,选定区域,在数据选项中找到并单击分列选项。

   但是在数据量非常大的情况下,用VBA的方法可能是效率最高的,代码分享如下:


Sub 字符串分裂()

Dim rg As Range, i As Integer, ncol As Integer, k As Integer, r As Integer

Dim arr

ncol = Selection.Column 1

nrow = Selection.row

r = nrow

For Each rg In Selection

      k = 0

      arr = Split(CStr(rg.Value), ',')

’将单元格里的按逗号分割储存在数组arr中

      For i = ncol To UBound(arr) ncol    

      Cells(r, i) = arr(k)

      k = k 1

Next

r = r 1

Next

End Sub


   这里主要用到了split()函数的功能,split函数可以将指定字符串按照指定的字符分割成多个字符串,在语句arr=split(CStr(rg.Value),”,”) 中,split的第一个参数CStr(rg.Value)是单元格的值,具体来说是转化成字符形式的单元格内容,因为split函数第一个参数必须是字符类型,所以为了保证这一点,先用CStr()将单元格的值rg.Value转化为字符类型。第二参数设置分隔符,这里是“,”,即英文状态下的逗号。Split还有两个参数,这里省略了,关于split函数详细的介绍请参考百度。

    我们只要在原代码中修改split函数中,第二个参数的值,(即分隔符)来达到按不同分隔符分割字符串的目的,例如我们在原代码中修改arr = Split(CStr(rg.Value), ',')语句,将其改为arr = Split(CStr(rg.Value), ' ') 就可以实现按空格分 割。操作如下:

    好啦今天的分享结束啦,感谢小伙伴们的聆听!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多