公告:九九网站目录为广大站长提供免费收录网站服务,会员可在线完成投稿无需添加友情链接。只收录内容正规合法的网站;快审网站软文10元

点击这里在线咨询客服
新站提交
  • 网站:8462
  • 待审:16
  • 小程序:9
  • 文章:3610
  • 会员:21112

 

前景提要

昨天我们学习了如何利用VBA来实现拆分单元格的功能,很多小伙伴也是一直在吐槽,这个功能和Excel自带的分列功能有点类似,似乎实际工作中的作用不大,好吧,既然如此,我们来升华一下,今天难度提升,昨天我们拆分的单元格只有一种分隔符,按照大家的说法,可以直接用Excel自带的分列功能实现,那么如果有很多种不同的分隔符呢?

场景说明

这是我们今天的模拟数据,可以看到,今天的数据源中有很多种不同的分隔符,也有空格,如果我们还是用Excel自带的分列功能呢?

是不是有点束手无策了,因为Excel的分列功能每次只能按照一种分隔符进行拆分,没有办法同时针对多种拆分符进行分割,所以这就是他的局限性,也许有小伙伴会说,多拆分分列几次就可以了,事实是这样,当然是你不嫌麻烦

其实我们完全可以用VBA来实现一次性拆分的

如何实现呢?

其实就是在上节的代码基础上增加一些代码,来一起看看

代码区

Sub test2()

Dim rng As Range, arr, a As Range, str

Set rng = Application.InputBox("请选择需要拆分的单元格区域", "单元格的处理", , , , , , 8)

For Each a In rng

str = a.Value

With CreateObject("VBSCRIPT.REGEXP")

.Pattern = "[.~!@#$%\^\+\*&\\\/\?\|:\.{}(), ;=]"

.IgnoreCase = True

.Global = True

If .test(str) Then

ss = .Replace(str, "-")

arr = Split(ss, "-")

ii = UBound(arr) + 1

For i = 1 To ii

a.Offset(0, i) = arr(i - 1)

Next i

分享到:

  admin

注册时间:

网站:0 个   小程序:3 个  文章:0 篇

  • 462

    网站

  • 9

    小程序

  • 3610

    文章

  • 112

    会员

赶快注册账号,推广您的网站吧!
热门网站
最新入驻小程序

跳一跳2022-08-22

跳一跳是微信开发的一款小游戏,有

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康