我需要幫助才能讓我的Excel函數正常工作。我們的目標是運行一個內嵌函數,它將從另一個單元格輸入的正則表達式函數的所有模式匹配提取到一個單元格中,而不是單元格數組。Excel VBA正則表達式函數將多個匹配返回到單個單元格中
我已經嘗試過使用數組,它返回函數對話框預覽中的兩個匹配,但只輸出單元格中的第一個匹配項。我也試過使用一個集合,但沒有運氣。
這裏是我當前的代碼,並且將被用來作爲函數的字符串輸入文本的樣本:
Function RegexMatches(strInput As String) As Variant
Dim rMatch As Match
Dim arrayMatches
Dim i As Long
arrayMatches = Array()
With New RegExp
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = "(Code)[\s][\d]{2,4}"
For Each rMatch In .Execute(strInput)
ReDim Preserve arrayMatches(i)
arrayMatches(i) = rMatch.Value
i = i + 1
Next
End With
RegexMatches = arrayMatches
End Function
樣品strInput從Excel單元格:
碼123一些隨機文本
轉到此處並繼續到下一行
代碼4567後跟更多文本
包括新的線不只是換行的文本
從該函數的期望的輸出將是兩個(2)從匹配正則表達式的函數值成單細胞(例如「Code 123 Code 4567」)。
任何幫助,非常感謝!
Concat匹配值,然後返回此修剪過的字符串。 –
@ Mat'sMug看看這[屏幕截圖](http://i.imgur.com/CugeElc.png?1) – BoogieMan2718
@WiktorStribiżew這就是我在想概念,但我不知道如何去做該函數使用VBA代碼。 – BoogieMan2718