二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企資快報 » 商業 » 正文

一個自定義函數_輕松提取中文_數值和英文

放大字體  縮小字體 發布日期:2022-12-08 20:46:23    作者:葉子墨    瀏覽次數:69
導讀

先來看看一個表,也不知道哪個挨千刀得,在記錄數據得時候搞成這個樣子,都聚集在A1單元格。要將A1中得姓名和銀行卡號分別提取出來,只需要一個自定義函數GetChar就可以輕松搞定。C2單元格:=INDEX(GetChar($A$

先來看看一個表,也不知道哪個挨千刀得,在記錄數據得時候搞成這個樣子,都聚集在A1單元格。

要將A1中得姓名和銀行卡號分別提取出來,只需要一個自定義函數GetChar就可以輕松搞定。

C2單元格:

=INDEX(GetChar($A$1,3),ROW(1:1))

D2單元格:

=INDEX(GetChar($A$1,1),ROW(1:1))

這個神秘得GetChar到底是什么呢?它是VBA自定義函數。

右鍵單擊工作表標簽,插入,模塊,然后將以下代碼粘貼到模塊里,好了,接下來就一起輕松玩轉提取字符吧:

Function GetChar(strChar As String, varType As Variant) '取值函數 Dim objRegExp As Object Dim objMatch As Object Dim strPattern As String Dim arr Set objRegExp = CreateObject("vbscript.regexp") varType = LCase(varType) Select Case varType Case 1, "number" strPattern = "-?\d+(\.\d+)?" Case 2, "english" strPattern = "[a-z]+" Case 3, "chinese" strPattern = "[\u4e00-\u9fa5]+" End Select With objRegExp .Global = True .IgnoreCase = True .Pattern = strPattern Set objMatch = .Execute(strChar) End With If objMatch.Count = 0 Then GetChar = "" Exit Function End If ReDim arr(0 To objMatch.Count - 1) For Each cell In objMatch arr(i) = objMatch(i) i = i + 1 Next GetChar = arr Set objRegExp = Nothing Set objMatch = NothingEnd Function

這個自定義函數得功能設計就是專門提取字符得,語法為:

GetChar(strChar,varType):

第二參數為1時提取數字

第二參數為2時提取英文

第二參數為3時提取漢字

圖文:翟振福

 
(文/葉子墨)
免責聲明
本文僅代表作發布者:葉子墨個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

粵ICP備16078936號

微信

關注
微信

微信二維碼

WAP二維碼

客服

聯系
客服

聯系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

日韩欧美国产免费看清风阁