VBA множественные совпадения в одной строке с использованием метода execute регулярных выражений

Я пытаюсь сопоставить уровни опыта для различных должностей на основе 1. Степень 2. Годы опыта. Шаблон довольно прост (пример: «BS / 5" будет бакалавром наук с 5-летним опытом. У меня также есть записи, которые следуют этой схеме, но имеют несколько степеней и уровней опыта в одной строке (пример: "BS / 5-МС / 2"), которые считаются эквивалентными. Я'у нас есть базовая функция, которая будет сопоставлять и находить шаблон подстроки, но она никогда не возвращает более одного совпадения, даже если яустановите для свойства .Global значение true для объекта regexp. Есть идеи? Код ниже:

On Error Resume Next
ActiveWorkbook.VBProject.References.AddFromGuid "{3F4DACA7-160D-11D2-A8E9-00104B365C9F}", 5, 5

Dim theRegex As Object
Dim theString As String 

Set theRegex = CreateObject("VBScript.RegExp")

With regex
    .MultiLine = False
    .Global = True
    .IgnoreCase = False
End With

theRegex.Pattern = "([A-z][A-z][A-z]?/[0-9][0-9]?)"

theString = "MS/9-PhD/4"

Set MyMatches = theRegex.Execute(theString)

Debug.Print "SubMatches.Count: " & MyMatches.Item(0).SubMatches.Count

If MyMatches.Count  0 Then
        With MyMatches
            For myMatchCt = 0 To .Count - 1
                    Debug.Print "myMatchCt: " & myMatchCt
                    For subMtCt = 0 To .Item(subMtCt).SubMatches.Count - 1
                        Debug.Print "subMtCt: " & subMtCt
                        Debug.Print ("," & .Item(myMatchCt).SubMatches.Item(subMtCt))
                    Next
            Next
        End With
    Else
    Debug.Print "No Matches"
End If

Ответы на вопрос(1)

Ваш ответ на вопрос