分享

Excel分列功能很强大,拆分文本全靠它!VBA不服气!我也能

 千彩一工作室 2019-07-22

VBA早间档

VBA早间档,利用简单的几分钟,学习一些简单的VBA知识,提升工作效率

今日主题

今天我们来继续学习下字符串的处理,今天我们来学习下字符串的拆分

说到字符串的拆分,很多小伙伴都会迅速想到一个方法--------分列

Excel分列功能很强大,拆分文本全靠它!VBA不服气!我也能

分列在我们的工作中确实有很大的用处,不过在VBA代码中是没有办法直接使用这个分列的方法的,那么在VBA中如何实现这个分列的方法呢?

案例展示和解析

Excel分列功能很强大,拆分文本全靠它!VBA不服气!我也能

这是我们今天的工作表,我们要针对这一列进行拆分,那么分列肯定是轻松就实现了,我们来学习VBA如何实现这个方法

Sub chaifen()
Dim a As Range, arr, rng As Range
Set rng = Application.InputBox("请选择拆分区域", "拆分区域的确定", , , , , , 8)
For Each a In rng
arr = Split(a, "-")
a.Offset(0, 1).Resize(1, UBound(arr) + 1) = arr
Next a
End Sub
Excel分列功能很强大,拆分文本全靠它!VBA不服气!我也能

代码解析

在VBA中,通过一个简单的split()方法就可以实现对文本的拆分,split()的写法也非常的简单

split(文本,拆分标准)只需要两个参数就了,他最终得到的结果是一个数组。

数组虽然还没有正式介绍过,但是熟悉我19点挡的小伙伴一定都非常熟悉了。

arr = Split(a, "-")

来个图就能够知道最终数组效果了。

Excel分列功能很强大,拆分文本全靠它!VBA不服气!我也能

正好是拆分结果的两部分,如果是三部分,那么这里就是三个值,依次类推

然后又了数组的结果我们就可以将结果返回到表格中了

a.Offset(0, 1).Resize(1, UBound(arr) + 1) = arr

这里又有一个知识点,resize(行数,列数)

a.resize( h,l)代表已a单元格为标准形成的一个h行l列的单元格区域

因为我们是横向展示,自然是h就是1,代表一行

l代表的是列数,有几个结果我们就展示几列,这里直接获取数组的最大下标UBound(arr)

因为数组的下标都是从0开始的,所以最大下标要+1,然后可以得到我们的结果了。

==========================================

以上就是今天的VBA早间档的全部内容,感谢大家的捧场~~

明天早上7:30,准时再见,

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多