前景提要
今天我們繼續學習單元格部分內容的提取,今天我們要學習的是提取出單元格中英文,前面學習了中文,數字的提取,今天我們來學習英文的提取
場景說明我們還是結合實際的場景來看看,還是使用上節我們使用的案例
從案例中,我們可以看到,除去前面兩個單元格是沒有英文的之外,其他的單元格內都有英文,並且有大小寫的分別,我們如何將他們都提取出來呢?
程式碼區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中也是如此,比較常用的就是單元格內容的提取和拆分,我們這幾天分享的提取功能,其實也就是正則的拆分功能。
接下來我們會深入講解一些更加複雜一點的正則運用,能夠提取/拆分出一些更加複雜,有比較常用的資訊
最新評論