Excel VBA 8.26 正则提取太复杂?部分场景可以用函数

正则提取太复杂?部分场景可以用函数


点击上方“Excel和VBA”,选择“置顶公众号”

致力于原创分享Excel的相关知识,源码,源文件打包提供

一起学习,一起进步~~


之前几天我们分享了 单元格的内容提取,主要是使用正则来实现的,因为最近都在使用python爬虫,比较多的使用到了正则表达式,所以说着说着就有点扯远了,有小伙伴在后台提醒我,都快成为了正则的章节了。

所以今天回归正题,继续来分享一些其他的单元格提取的方法。

正则虽然效果不错,但是因为还需要学习一些正则表达式的语法、结构等,对于大家来说,脑细胞肯定不够用了,那么有没有简单一些的方法呢?

简单的方法肯定有,不过也是和正则一样,也是要针对场景的,所以直接进入场景说明

场景说明

今天的场景为了保持连贯性,依然还是使用上节的场景

今天我们要实现的效果是从每个单元格中提取左边的三位,右边的三位

简单可以理解为按照长度来提取文本

代码区

Sub left11()Dim rng As Range, a As RangeSet rng = Application.InputBox("请选择单元格区域", "提取单元格左边三位", , , , , , 8)For Each a In rng    a.Offset(0, 1) = Left(a, 3)Next aEnd SubSub 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 aEnd Sub

注意

依然要注意的是,这里提供了两段代码,大家复制使用的时候要留意

来看下代码的效果

代码解析

很明显,今天的代码中,我们并没有使用正则了,那么我们又是利用什么样的方法来实现内容的提取的呢?

left,right

对于我这个小学英语水平的人都能够知道这两个英文单词的意思了,就是左边和右边

没错,今天我们就是直接用这两个单词来实现的提取

他们的使用语法也非常的简单

left(文本,长度)right(文本,长度)

文本非常好理解了,那就是每个单元格的内容,那么长度呢?

就是你要提取的字符的长度,left就是从左边数,right就是从右边数,也可以理解开头的几位,结尾的几位这样

那么说到这里,又有一个问题冒出来了,特殊字符或者空格也被算在内嘛?

直接用例子说明下吧

我们在这里分别加上一个空格和一个特殊字符,看看是否识别

很明显,不管是特殊字符还是空值都被算在这个长度内的

预告:

有了从头提取,从末尾提取,那么如果我想要提取的内容仅仅是中间一部分呢?

怎么办呢?

小伙伴们有思路嘛?欢迎留言~~

(0)

相关推荐