大家好,我是爱分享的永恒君!
最近遇到这样一个excel需求,如下图:
因一些业务需求,定期需要将一大批人员的姓名进行特殊处理,将姓名的第二个字用 * 号代替。
有的时候,一个单元格里面会有两个或者多个姓名。
手工一个一个修改也不是不可以,时间会比较久。
如果使用函数的话,对于单元格里面有多个姓名的就不太友好。
那么,可以考虑用VBA来解决。
思路分享
1、对于单元格里是单个姓名来说,方法很多。比如下面这样,
Left(name, 1) & "*" & Right(name, Len(name) - 2)
Left(name, 1)
- 提取姓名左边的第一个字。
Right(name, Len(name) - 2)
- 提取姓名右边的第(Len(name) - 2)个字,如果姓名为3个字,那就提取姓名右边第1个字;如果姓名为2个字,那就不提取;
最后用 &
拼接起来。
2、对于单元格里面有多个姓名,遍历每个姓名,再重复上面步骤1即可。
效果演示
点击按钮一键搞定
如果还有姓名也可继续添加
手机号也是可以的
按照上面的思路,手机号码也是可以进行类似的操作的。
好了,以上就是今天的分享。感兴趣的话,可以在后台回复“隐藏”获取完整代码文件试用。