Excel VBA 8.26 正则提取太复杂?部分场景可以用函数
正则提取太复杂?部分场景可以用函数
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
之前几天我们分享了 单元格的内容提取,主要是使用正则来实现的,因为最近都在使用python爬虫,比较多的使用到了正则表达式,所以说着说着就有点扯远了,有小伙伴在后台提醒我,都快成为了正则的章节了。
所以今天回归正题,继续来分享一些其他的单元格提取的方法。
正则虽然效果不错,但是因为还需要学习一些正则表达式的语法、结构等,对于大家来说,脑细胞肯定不够用了,那么有没有简单一些的方法呢?
简单的方法肯定有,不过也是和正则一样,也是要针对场景的,所以直接进入场景说明
场景说明
今天的场景为了保持连贯性,依然还是使用上节的场景
今天我们要实现的效果是从每个单元格中提取左边的三位,右边的三位
简单可以理解为按照长度来提取文本
代码区
Sub left11()
Dim rng As Range, a As Range
Set rng = Application.InputBox("请选择单元格区域", "提取单元格左边三位", , , , , , 8)
For Each a In rng
a.Offset(0, 1) = Left(a, 3)
Next a
End Sub
Sub right11()
Dim rng As Range, a As Range
Set rng = Application.InputBox("请选择单元格区域", "提取单元格右边三位", , , , , , 8)
For Each a In rng
a.Offset(0, 1) = Right(a, 3)
Next a
End Sub
注意
依然要注意的是,这里提供了两段代码,大家复制使用的时候要留意
来看下代码的效果
代码解析
很明显,今天的代码中,我们并没有使用正则了,那么我们又是利用什么样的方法来实现内容的提取的呢?
left,right
对于我这个小学英语水平的人都能够知道这两个英文单词的意思了,就是左边和右边
没错,今天我们就是直接用这两个单词来实现的提取
他们的使用语法也非常的简单
left(文本,长度)
right(文本,长度)
文本非常好理解了,那就是每个单元格的内容,那么长度呢?
就是你要提取的字符的长度,left就是从左边数,right就是从右边数,也可以理解开头的几位,结尾的几位这样
那么说到这里,又有一个问题冒出来了,特殊字符或者空格也被算在内嘛?
直接用例子说明下吧
我们在这里分别加上一个空格和一个特殊字符,看看是否识别
很明显,不管是特殊字符还是空值都被算在这个长度内的
预告:
有了从头提取,从末尾提取,那么如果我想要提取的内容仅仅是中间一部分呢?
怎么办呢?
小伙伴们有思路嘛?欢迎留言~~