近期使用Excel比较多,有一些匹配和替换的内容。平常涉及的比较简单,也就使用If或者VLOOKUP之类的函数。这次使用到正则表达式和VBA,在此记录一下,以防忘记。

打开文件一定要选择EXCEL打开,按住ALT+F11,右键文件选择“查看代码”,输入代码:

Private Sub RegExp_Replace()

Dim RegExp As Object

Dim SearchRange As Range, Cell As Range

'此处定义正则表达式

Set RegExp = CreateObject("vbscript.regexp")

RegExp.Pattern = "^[A-Za-z0-9]+(\-)?[0-9]?$"

#此处匹配所有以字母或数字开头的单元格(比如A01,或者A01-1)

'此处指定查找范围

Set SearchRange = ActiveSheet.Range("A3:A1008")

'遍历查找范围内的单元格

For Each Cell In SearchRange

Set Matches = RegExp.Execute(Cell.Value)

If Matches.Count >= 1 Then

Set Match = Matches(0)

Cell.Value = RegExp.Replace(Cell.Value, "16S")

#此处将单元格的内容完全替换成16S

End If

Next

End Sub

点击

image

执行代码,即可完成所需功能。

image.png

但是遇到不匹配的模式则提示

image.png

另辟途径解决,还是回归到我熟悉的IF函数。虽然有点曲折,但总算解决了我的问题:

反其道儿行知,不匹配的单元格都是#N/A(使用VLOOKUP匹配没有结果的单元格),将匹配这个的单元格记录为“no”;不匹配的单元格记录为“yes”。

IF(COUNTIF(A2,"#N/A"),"no","yes")

#COUNTIF是对满足条件的单元格计数

#理解为如果A2单元格满足条件,则COUNTIF(A2,"#N/A")返回值为1,

#则满足了IF的条件,返回值为“no”,反之返回值为“yes”。

excel中用正则匹配_Excel利用正则表达式匹配和替换内容相关推荐

  1. excel中用正则匹配_excel 利用正则表达式匹配工作表中的数据

    excel 利用正则表达式匹配工作表中的数据 sheet1中A列放需要匹配的数据 sheet2中A列放正则表达式,可以是多个,但至少一个 匹配到了则在sheet1中C列对应行显示相关标记内容,比如本案 ...

  2. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  3. php省市区筛选,PHP利用正则表达式匹配省市区

    这次给大家带来PHP利用正则表达式匹配省市区,PHP利用正则表达式匹配省市区的注意事项有哪些,下面就是实战案例,一起来看一下.preg_match('/(.*?(省|自治区|北京市|天津市))+(.* ...

  4. Java进阶(十九)利用正则表达式批处理含链接内容文档

    利用正则表达式批处理含链接内容文档 由于项目需求,自己需要将带有链接的标签去除,例如 <a href="/zhaoyao/17-66.html">头晕</a> ...

  5. excel中用正则匹配_excel 中如何使用正则表达式函数提取或替换内容

    word中自带正则表达式,不过Excel中却没有内置.可以在VBA中定义一个正则表达式函数,然后Excel中就可以调用了.VBA代码如下(VBA高亮无效,凑合着看): 1.Function ExStr ...

  6. java正则匹配汉字_正则表达式匹配中文汉字

    文章告诉你如何利用php教程 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法. preg_match("/[a- ...

  7. java正则 链接_Java使用正则表达式匹配获取链接地址的方法示例

    本文实例讲述了Java使用正则表达式匹配获取链接地址的方法.分享给大家供大家参考,具体如下: 获取页面中字符串的url地址我们都会使用正则表达式来匹配获取了,下面我来给大家总结几个匹配获取链接地址示例 ...

  8. java正则任意字符_正则表达式匹配任意字符(包括换行符)的写法

    今天在Java中想使用正则表达式来获取一段文本中的任意字符.于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,". ...

  9. java 正则 括号外_正则表达式匹配括号外的符号及数据

    正则表达式匹配括号外的符号 [\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$)) 将括号外的?!/.,和空格(连续多个时同时)匹配 如 String string1 = "sd ...

最新文章

  1. scikit正则化 API
  2. JAVA Calendar具体解释
  3. python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
  4. duilib进阶教程 -- 改进窗口拖动 (12)
  5. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  6. 微信多开txt_电脑版微信怎么双开、多开
  7. byte数组穿换成pcm格式_形象地介绍DSD的编解码原理及和PCM的区别
  8. Debian Linux下的Python学习——列表,元组和字典之列表
  9. JAVA中的线程安全与非线程安全,java面试题,java高级笔试题
  10. mysql强制指定索引_mysql强制索引和禁止某个索引
  11. Oracle迁移到MySQL性能下降的注意点
  12. Rpm另类用法加固Linux安全
  13. 学Java看什么书比较好
  14. matlab的grid网格线属性设置,修改网格线密度
  15. 【Unity实战100例】技能伤害区域判定(矩形,圆,三角形,扇形)(三)
  16. linux 双显示器 异常,终于搞定双显示器了
  17. 小蓝本 第一本《因式分解技巧》第四章 拆项与添项 笔记(第四天)
  18. 淘宝订单API接口获取订单
  19. 【scrapy爬虫】爬取华为应用市场中所有应用的评论数据
  20. 微信公众号之底部菜单

热门文章

  1. html5无法播放腾讯视频教程,电脑中无法打开腾讯视频的解决方法
  2. 模拟水面表面张力,效果自然、真实,北大图灵班研究入选SIGGRAPH
  3. Re-ID:AlignedReID: Surpassing Human-Level Performance in Person Re-Identification 论文解析
  4. html5 图片处理 开源,AlloyImage 基于 HTML5 的专业级图像处理开源引擎 - 文章教程...
  5. 成都,今夜请将我遗忘 读后感
  6. 懂了!运算放大器的工作原理
  7. 算法竞赛入门经典 每日一题(郊区春游)
  8. 如何从多个角度筛选和搭建量化股票池?
  9. Android实现APK智能安装且安装后自启动,亲测有用!
  10. 数据库索引分裂 问题分析