Доброй ночи, форумчане.
Возник вопрос по использованию RegEx.Execute
сёрфил форум в поисках ответа, увы видимо не хватило компетенций или упорства...
Если быть кратким вопрос следующий: Как использовать функцию Execute для определённого диапазона, если в ячейку вставляются данные из буфера обмена (любого другого файла), содержащую следующий примерный текст : "Машина KAMAZ А101СЕ178". Диапазон к примеру используется "A".
я могу только проверить, но не подставить необходимые данные с помощью MsgBox
код:
Возник вопрос по использованию RegEx.Execute
сёрфил форум в поисках ответа, увы видимо не хватило компетенций или упорства...
Если быть кратким вопрос следующий: Как использовать функцию Execute для определённого диапазона, если в ячейку вставляются данные из буфера обмена (любого другого файла), содержащую следующий примерный текст : "Машина KAMAZ А101СЕ178". Диапазон к примеру используется "A".
я могу только проверить, но не подставить необходимые данные с помощью MsgBox
код:
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Columns("A")) Is Nothing Then Application.EnableEvents = False Dim objRegExp As Object Dim iTemp As String iTemp = Target.Text Set objRegExp = CreateObject("VBScript.RegExp") objRegExp.Global = True: objRegExp.IgnoreCase = True: objRegExp.MultiLine = False objRegExp.Pattern = "(\d{2})([а-я]{2})(\d{3})" If objRegExp.Test(iTemp) Then iTemp = objRegExp.Replace(iTemp, "$1 $2 $3") Mid(iTemp, 4, 2) = UCase(Mid(iTemp, 4, 2)) Target = iTemp Else MsgBox "Введите в формате : А111АА111" End If End If Application.EnableEvents = True End Sub |