VBA代码删除字符串里所有空格(邮件地址内空格专杀!)

面对问卷收集中混有大量空格的Email地址,本文分享了一种使用双重DoWhile循环结合文本函数的VBA代码,解决了空格不在两端且可能多个的问题。通过InStr()定位空格,Trim()去除两端空格,再结合DoWhile循环确保所有空格被彻底清除,为处理此类问题提供了解决方案。
摘要由CSDN通过智能技术生成

通过简单的问卷APP收上来的Email地址内夹杂大量的空格、中文符号,一进入和发件相关的工作环节就想杀人有没有?

为了解决这个痛苦,今天研究出了一个组合使用 双重DoWhile循环 + 文本函数 组合消除字符串内部空格的小代码段供其他和我一样挣扎在一线的朋友们参考。代码比较6的请直接去最下方搬运拙作,我的注释写得及其详细,但凡有基础都能很快看懂。刚入门的朋友请先听我介绍以下思路。

带人犯!这是一个典型的加在空格的email地址:Abc 12 @ nju .edu. cn 一个短短的地址夹了5个空格,简直丧心病狂……

这个有问题的地址有两个处理难点:

  1. 空格不在字符串的两端而在中间,因此不能用简单的trim函数(无论是VBA还是Excel公式)解决
  2. 空格不止一个,网上有不少代码试图用replace的方法替换掉空格,但是很多都是挖了个坑,说明replace最起码在代码实现上不够直观,很多人用不好

针对这两个问题我的思路是:

  1. 对于在中间的空格,可以先用InStr()方法锁定空格所在位置,然后把字符串从空格处劈成两半,对两半分别进行Trim()去空格——这样一来就把从中间去空格的问题转化成了常规的从两边去空格。随后再把这两半拼接起来即可。
  2. 由于邮件地址里面夹杂的地址不止一个,需要用DoWhile循环,再检查一次去过空格的字符串看是不是干净了,如果还包含空格就再来一遍……直到当前处理的字符串里再也没有任何空格。

把这个思路落实到代码里就是:

Sub Space_Killer()

    Dim ridx As Long ' 定义变量存储行标
    Dim w 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值