Excel VBA 8.24 批量获取英文 你仍是需要正则

Excel VBA 8.24 批量获取英文 你仍是需要正则

acad2018 2021-02-23 06:25:24 新东方在线网课 次浏览 个评论
  

??今日咱们持续学习单元格有些内容的获取,今日咱们要学习的是获取出单元格中英文,前面学习了中文,数字的获取,今日咱们来学习英文的获取

场景阐明

咱们仍是联


??今日咱们持续学习单元格有些内容的获取,今日咱们要学习的是获取出单元格中英文,前面学习了中文,数字的获取,今日咱们来学习英文的获取

场景阐明

咱们仍是联系实践的场景来看看,仍是运用上节咱们运用的事例

从事例中,咱们可以看到,除去前面两个单元格是没有英文的之外,其他的单元格内都有英文,而且有巨细写的别离,咱们如何将他们都获取出来呢?

代码区

Sub allenglish()

Dim rng As Range, a As Range

Set rng = Application.InputBox("请选择单元格区域", "获取单元格的中文", , , , , , 8)

For Each a In rng

MyStr = a.Value

ResultStr = ""

With CreateObject("VBSCRIPT.REGEXP")

.Pattern = "[a-zA-Z]"

.IgnoreCase = True

.Global = True

If .test(MyStr) Then

For Each Item In .Execute(MyStr)

ResultStr = ResultStr & Item

Next Item

a.Offset(0, 1) = ResultStr

End If

End With

Next a

End Sub

一看到代码就晓得,咱们今日运用的办法仍是正则,不错,单元格内容的获取,最健壮的办法是正则

作用也对错常的显着,成功的获取出了英文字母,避开了一切的中文,数字等符号的烦扰。

代码解析

其实今日的代码,我们大约是可以独立看理解的,因为今日的中心,只是是替换了一句代码,就是正则表达式

.Pattern = "[a-zA-Z]"

经过这段代码,咱们就可以成功的将一切的英文,不区别巨细写的来获取了。非常的便利,

有没有感触正则表达式其真实VBA中的运用非常的广泛?

没错,正则表达式在python,JAVA等编程言语中有非常管广泛的运用,相同在VBA中也是如此,比照常用的就是单元格内容的获取和拆分,咱们这几天共享的获取功用,其实也就是正则的拆分功用。

接下来咱们会深化说明一些愈加凌乱一点的正则运用,可以获取/拆分出一些愈加凌乱,有比照常用的信息

本文标题: Excel VBA 8.24 批量获取英文 你仍是需要正则

评论列表 (有 条评论, 人围观)
Top