正則表達式,相信大家都不陌生。但在我們最常用的辦公軟件EXCEL中,目前沒有可直接使用正則表達式的函數(至少10版本的EXCEL沒有),那么今天我就分享下如何在EXCEL中自定義正則函數。
一、提需求
比如,我要拆分下面的字符串:
顯然這樣的需求,用正則表達式再合適不過了。
二、解決步驟
下面我們使用的這個方法,定義出的函數將長期有效:
1、新建一個EXCEL文件,我這里命名為RE,隨后按ALT+F11打開宏編輯器,選中任意一個sheet,右鍵,選擇插入模塊:
2、雙擊模塊1,編輯如下VBA自定義函數代碼:
1 Function RE(OriText As String, ReRule As String, ReplaceYesOrNo As Boolean) 2 ''' 3 'OriText:待匹配的字符串 4 'ReRule:正則表達式 5 'ReplaceYesOrNo:是否采用替換方法,1表示替換,0表示不替換,默認為不替換 6 ''' 7 8 '創建一個正則表達式實例對象 9 Set ReObject = CreateObject("vbscript.regexp") 10 11 With ReObject 12 13 '是否區分大小寫,一般需求是不用區分大小寫,因此這里為True 14 .IgnoreCase = True 15 16 '是否匹配所有,一般需求也都是匹配所有,這里也就默認是True,如果為False表示只匹配第一次出現的 17 .Global = True 18 19 '匹配時所用到的正則表達式 20 .Pattern = ReRule 21 22 If ReplaceYesOrNo Then 23 24 '如果使用替換方法,則將正則表達式匹配到的項替換為空 25 RE = .Replace(OriText, "") 26 27 Else 28 '否則,返回可迭代對象的第一項 29 RE = .Execute(OriText)(0) 30 31 End If 32 33 End With 34 35 End Function
3、另存為加載宏格式:
4、點擊下方的加載項:
5、點擊瀏覽:
6、選擇我們剛保存的加載宏格式文件,結果如下圖:
好了,到這里我們的正則函數就創建好了,隨后每次打開EXCEL都可以直接使用定義的RE函數,按照需求來敲出合適的正則表達式。
三、結果呈現
大家趕快也嘗試起來吧,誰用誰爽。
以上就是本次分享的內容,如有任何疑問,歡迎下方留言,或公眾號【轉行學數據分析】聯系我!
原文鏈接:https://www.cnblogs.com/xu-qingfeng/p/14540640.html
本文版權歸作者和博客園共有,歡迎轉載。但必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。