首頁>科技>

前景提要

今天我們繼續學習單元格部分內容的提取,今天我們要學習的是提取出單元格中英文,前面學習了中文,數字的提取,今天我們來學習英文的提取

場景說明

我們還是結合實際的場景來看看,還是使用上節我們使用的案例

從案例中,我們可以看到,除去前面兩個單元格是沒有英文的之外,其他的單元格內都有英文,並且有大小寫的分別,我們如何將他們都提取出來呢?

程式碼區
Sub allenglish()Dim rng As Range, a As RangeSet 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 WithNext aEnd Sub

一看到程式碼就知道,我們今天使用的方法還是正則,不錯,單元格內容的提取,最強大的方法是正則

效果也是非常的明顯,成功的提取出了英文字母,避開了所有的中文,數字等符號的干擾。

程式碼解析

其實今天的程式碼,大家應該是能夠獨立看明白的,因為今天的核心,僅僅是更換了一句程式碼,就是正則表示式

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

透過這段程式碼,我們就可以成功的將所有的英文,不區分大小寫的來獲取了。非常的方便,

有沒有感覺正則表示式其實在VBA中的運用非常的廣泛?

沒錯,正則表示式在python,JAVA等程式語言中有非常廣泛的使用,同樣在VBA中也是如此,比較常用的就是單元格內容的提取和拆分,我們這幾天分享的提取功能,其實也就是正則的拆分功能。

接下來我們會深入講解一些更加複雜一點的正則運用,能夠提取/拆分出一些更加複雜,有比較常用的資訊

9
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 蘋果再次出手,申請新專利,不用抽血即可測血糖