Ошибка времени выполнения 5 при использовании Mid ()

#vba

#vba

Вопрос:

Я работаю со строкой в vba. Я хотел бы сделать что-то вроде этого:

 Dim  matchprodat, matchtxt As MatchCollection
    rega2lhex.Pattern = "[\][w]*"
    regprodat.Pattern = "(Datensatz:|Projekt:)[sw*,*]*[\w]*"
    \ I am reading each line of a text file 
    Set matchprodat = regprodat.Execute(line)
    If matchprodat.Count <> 0 Then
     Set matcha2lhex = rega2lhex.Execute(matchprodat.Item(0))
     DCMname = DCMfilename   "<>"   Mid(matcha2lhex.Item(0), 2)
    End if
  

но я получаю ошибку: Run-time error '5': "Invalid procedure call or argument"

matcha2lhex.Item(0) не пустое и имеет длину 8. Что вызывает эту ошибку в Mid ()?

Если я слежу за значением: введите описание изображения здесь

Комментарии:

1. Возможно ли для вас отредактировать свой ответ с помощью большего примера кода? Поскольку мы не знаем тип или содержимое matcha2lhex , то будет очень сложно (если не невозможно) диагностировать точную природу вашей проблемы.

2. Я отредактировал свой пост, мой исходный код очень длинный, я показал вам краткое изложение блока

3. @Kaja в VBA вы бы предпочли объединить строку, используя amp; вместо . Применяется только при работе со строками, что, я не уверен, имеет место в вашем примере.

4. @mehowI изменил код, но выдает ту же ошибку

5. Можете ли вы показать весь свой код регулярного выражения, чтобы мы могли его протестировать?