如何使用VBA 用自定義函數(shù)提取字符
發(fā)布時(shí)間:2022-11-04 09:24 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 秋文-27173 閱讀: 2915

先來(lái)看看一個(gè)表,也不知道哪個(gè)挨千刀的,在記錄數(shù)據(jù)的時(shí)候搞成這個(gè)樣子,都聚集在A1單元格。要將A1中的姓名和銀行卡號(hào)分別提取出來(lái),只需要一個(gè)自定義函數(shù)GetChar就可以輕松搞定。

C2單元格:=INDEX(GetChar($A$1,3),ROW(1:1))

D2單元格:=INDEX(GetChar($A$1,1),ROW(1:1))


銀行卡號(hào)可以搞定,身份證號(hào)也很容易,還是這個(gè)挨千刀的記錄員,把姓名和身份證號(hào)都登記在了A1單元格,有沒(méi)有一種想動(dòng)刀子的沖動(dòng)?再次請(qǐng)出自定義函數(shù)GetChar:
C2單元格:=INDEX(GetChar($A$1,3),ROW(1:1))
D2單元格:=LEFT(INDEX(GetChar($A$1,1),ROW(1:1))&”X”,18)


那么這個(gè)神秘的GetChar到底是什么呢?

再和你賭5毛錢(qián)的,你現(xiàn)在的電腦里寫(xiě)完這個(gè)公式之后,你得到的結(jié)果是:#NAME?

它是來(lái)源于我獨(dú)創(chuàng)的VBA自定義函數(shù),在你的VBA模塊中植入以下代碼,來(lái)吧,和我一起輕松玩轉(zhuǎn)提取字符:

Function GetChar(strChar As String, varType As Variant) ‘取值函數(shù)

    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 = Nothing
End Function

它的功能設(shè)計(jì)就是專(zhuān)門(mén)為提取字符的,語(yǔ)法為:GetChar(strChar,varType):

varType參數(shù)為1時(shí),提。簲(shù)字

varType參數(shù)為2時(shí),提。河⑽

varType參數(shù)為3時(shí),提。簼h字

Excel VBA入門(mén)教程2020
我要自學(xué)網(wǎng)商城 ¥60 元
進(jìn)入購(gòu)買(mǎi)
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國(guó)的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
分類(lèi)選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫(huà) 程序開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 會(huì)計(jì)課程 興趣成長(zhǎng) AIGC