VBA早间档
VBA早间档,利用简单的几分钟,学习一些简单的VBA知识,提升工作效率
今日主题
今天我们继续来学习一些轻松简单的东西,之前我们学习了用split来拆分文本,那今天就来介绍下如何去除文本中无处不在,或隐或现的空格
案例展示和解析
![149d262f582faf80de430870c3be186b.png](https://i-blog.csdnimg.cn/blog_migrate/6e98c01b2198fd9ca0ac23b6c4394264.jpeg)
这里今天我们要操作的工作表,很明显的,文本参差不齐,有些两边有空格,有些中间有空格,还有一些左边或者右边有空格,这样的文本让我们处理起来都非常的不舒服,来看看用代码如何轻松处理
代码区
去除左边空格
Sub kong1()Dim rng As RangeFor Each rng In Selection rng.Offset(0, 1) = LTrim(rng)Next rngEnd Sub
非常的简单,关键点只有一个
LTrim,去除左边的空格,同样的还有一个相对的
RTrim,去除右边的空格
最终效果如下
![dd683fd57a186ac35a5fae2f8b6155b3.png](https://i-blog.csdnimg.cn/blog_migrate/9dd546fb3d23aa2eea2dcb3b3fd8190b.jpeg)
可以看到原来左边的空格,都已经没有了,单元格左边看起来非常的整齐
一次只能去处一边的空格,如果两边都有岂不是要执行两次代码,那么有没有更省事一点的方法呢?有
同时去除两边的空格
Sub kong2()Dim rng As RangeFor Each rng In Selection rng.Offset(0, 2) = Trim(rng)Next rngEnd Sub
最终效果如下
![de3d20ff198e342fb0c3dd5d37d8773e.png](https://i-blog.csdnimg.cn/blog_migrate/634e189d56828f48c8c076eb47d6306b.jpeg)
看起来似乎没有太大的区别,我们抽取一个来看看,第6行
![b49abaa0fa73b8f7ad74023807d62503.gif](https://i-blog.csdnimg.cn/blog_migrate/4c05152936dc17e1da659f1759367553.gif)
实现的方法全部依赖trim(),他的作用就是将字符串两边的空格全部去掉,等于是实现了上面Ltrim+Rtrim的效果
去除中间的空格
既然前后左右的空格都能去除了,那么中间还残留的那个空格就太显眼了,能去掉嘛?
Sub kong3()Dim rng As Range, s$For Each rng In Selection rng.Offset(0, 3) = Replace(rng, "