| B | C | D | | | |
| | | ..(BD|EF)....... | | | |
7 | TRG | PTN | RES | | | |
8 | ABCDEFGHIJK | ..(CD|EF)....... | 1 | | | |
9 | ABCDEFGHIJK | ..(CD|EF)....... | 1 | | | |
… | | | | | | |
Sub Sample()
Dim arr(0 To 20000) As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
Dim i As Long
Dim sTrg As String
Dim sPtn As String
For i = LBound(arr) To UBound(arr)
DoEvents
sTrg = ws.Cells(7 + i, "B").Value
sPtn = ws.Cells(7 + i, "C").Value
arr(i) = myFncRegExp(sTrg, sPtn)
Next i
ws.Range(Cells(7, "D"), Cells(7 + UBound(arr), "D")) = WorksheetFunction.Transpose(arr)
End Sub
Public Function myFncRegExp( _
ByVal argTrg As String, _
ByVal argPtn As String _
) As Integer
If argTrg = "" Then
myFncRegExp = -1
Exit Function
End If
Dim bRes As Boolean
Dim RE, strPattern As String
Set RE = CreateObject("VBScript.RegExp")
With RE
.Pattern = argPtn
.IgnoreCase = True
.Global = True
bRes = .Test(argTrg)
End With
myFncRegExp = IIf(bRes, 1, 0)
End Function