分享

神奇的VBA系列-017:分裂单元格数据并提取数据-拓展介绍

 神奇的ExcelVBA 2019-09-01

一段简单的VBA代码,让你自如操作Excel!

上篇 神奇的VBA系列-017 中, 我们使用嵌套Relace函数对指定字符进行了嵌套。

Sub 分离A列数组至旁边列中()
 ........
 txt = Replace(Replace(Cells(x, 1), "/", "*"), "-", "*")
 ........
End Sub

但是在更多应用中,数据中可能会有更多不同的字符,需要集中替换掉。 嵌套更多的Relace函数,会使代码看上去很混乱没条理,可读性差。

此时,我们可以选择使用数组存储各种不同的分隔字符,通过数组结合循环语句集中替换文本字符串中的特定字符, 我们重新写个代码示例。

重新描述下上篇的场景需求:下面采购清单表中A列的数据混乱(品名数量单位型号都写在了一起,不利于分类汇总),现在需要根据数据中的/、 * 、-等字符分裂数据,并将采购品的品名,型号,数量和单位分别写在旁边相应的单元格中。

采购清单表

一小段Excel VBA代码018:单元格数据进行分裂提取数据02

代码运行演示

代码示例

标准模块中加入如下代码即可实现上面的演示功能。

Sub 分离A列数组至旁边列中_示例2()
'创建一维数组
Dim arr(0 To 1)
arr(0) = "/"
arr(1) = "-"
'创建变量brr
Dim brr
'遍历单元格区域
For x = 2 To ActiveSheet.UsedRange.Rows.Count
 '获取A列相应单元格值
 txt = Cells(x, 1)
 '统一替换单元格中的相关字符为星号(*)
 For Each ele In arr
 txt = Replace(txt, ele, "*")
 Next
 '将Split分裂函数的返回值赋给brr变量
 brr = Split(txt, "*")
 '将数组元素值放置到指定单元格中
 Cells(x, 2) = brr(0)
 Cells(x, 3) = brr(1)
 Cells(x, 4) = brr(2)
 Cells(x, 5) = brr(3)
Next
End Sub

动手试一试,屏幕前的你, 复制代码运行下吧~~!

有关Excel VBA编程知识(职场牛人必备秘技),可下载安装使用职场人必备的工具《神奇的VBA》插件,一款嵌入进Excel Ribbon界面,打开任意Excel工作簿就能随时查阅学习VBA编程的Excel 插件。

插件下载地址戳链接:《神奇的VBA》-职场牛人都在使用的Excel插件

《神奇的VBA》选项卡样式

一小段Excel VBA代码028:单元格区域数值整体扩大3倍

神奇的VBA使用演示图

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多