Мне нужно найти строковый шаблон различной длины и добавить запятую и пробел после этого строкового шаблона.Например, поиск строки «Cat. 123». Я хочу заменить эту строку значением «Cat. 123» (т.е. добавить запятую, а затем пробел в конце «Cat. 123»).Я использую Mac Office 2011, поэтому любой код должен работать с версией Excel для Mac.
Я пытался использовать Replace.Regex, Split и все другие функции замены, которые я мог найти.Приведенный ниже код - лучшее, что я придумал, чтобы сделать это, но он не добавляет запятую и пробел в конец строкового шаблона.
Sub test()
Dim r As Range, x, y
Set r = Cells.Find("?*, Cat. *", , , 1)
If Not r Is Nothing Then
Do
' Search for any string with the pattern Cat. 123, Cat. 14, etc
x = Split(r.Value, " Cat. ")
If x(UBound(x)) Like "* *" Then
' Replace string Cat. 123 with the new string Cat. 123,
y = Split(x(UBound(x)))
x(0) = "Cat. " & y(0) & ", " & x(0)
x(UBound(x)) = y(1)
Else
y = x(UBound(x))
x(0) = "Cat. " & y & ", " & x(0)
x(UBound(x)) = ""
End If
r.Value = Join(x)
Set r = Cells.FindNext(r)
Loop Until r Is Nothing
End If
End Sub
Так чтовыходные данные каждой ячейки, содержащей шаблон, подобный следующим примерам: «Кат. 123», «Кат. 1», «Кат. 34», «Кат. 4567», будет изменен на «Кат. 123», «Кат. 1».«Cat. 34», «Cat. 4567», ПРИМЕЧАНИЕ. Исходная строка всегда будет иметь точку после слова «Cat», за ней будет следовать пробел, а затем одна цифра до четырех цифр.как показано выше.