#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. Можете ли вы показать весь свой код регулярного выражения, чтобы мы могли его протестировать?