Первый вариант Льготное кредитование и субсидирование, Обучение техническим навыкам (работа с цифровыми технологиями, e-gov, плейс-маркет, банкинг и т.д.), Страхование (социальное, медицинское) Второй вариант Социально-трудовые (трудоустройство, обучение, курсы повышения квалификации, курсы профессиональные, пособия и т.д.), Социально-экономические (Социально-экономические услуги направлены на поддержание и улучшение жизненного уровня)
Есть вот такие варианты ответа в одной строке excel нужно разделить после каждого варианта символом таким | то есть: Первый вариант нужно сделать вот так в нескольких документах поэтому нужен максрос как я понимаю? Льготное кредитование и субсидирование|Обучение техническим навыкам (работа с цифровыми технологиями, e-gov, плейс-маркет, банкинг и т.д.)|Страхование (социальное, медицинское)
Второй вариант Социально-трудовые (трудоустройство, обучение, курсы повышения квалификации, курсы профессиональные, пособия и т.д.)|Социально-экономические (Социально-экономические услуги направлены на поддержание и улучшение жизненного уровня)
Получается встречается запятые и в предложениях поэтому символ надо заменять по поиску после запятой пробел и Заглавная буква
Как это автоматизировать таких документов 35 по 25000 строк помогите пожалуйста
Жомарт Кенесов, нет файла - не нужно весь часть данных 10-20 ячеек с данными достаточно и показать желаемый результат после замены удачи)
Код
Sub mrshkei()
Dim lr As Long, i As Long, n As Long, j As Long, lcol As Long
lr = Cells(1, 1).SpecialCells(xlLastCell).Row
lcol = Cells(1, 1).SpecialCells(xlLastCell).Column
For j = 1 To lcol
For i = 1 To lr
If Cells(i, j) <> Empty Then
For n = 2 To Len(Cells(i, j))
On Error Resume Next
If Mid(Cells(i, j), n, 1) & " " = ", " And UCase(Mid(Cells(i, j), n + 2, 1)) = Mid(Cells(i, j), n + 2, 1) Then
Cells.Replace What:=Mid(Cells(i, j), n, 3), Replacement:=Replace(Mid(Cells(i, j), n, 3), ", ", "|"), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
n = n + 2
End If
Next n
End If
Next i
Next j
End Sub
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim Delimiter As String
Delimiter = "|"
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = ",\s(?=[А-Я])"
For i = 1 To iLastRow
If .test(Cells(i, 1)) Then
Cells(i, 2) = .Replace(Cells(i, 1), Delimiter)
End If
Next
End With
End Sub
Kuzmich, код то что нужно. Выполняет все правильно, но он делает только в первом столбце как можно поменять столбец в коде или же что бы он выполнялся на всех столбах. У меня в документе 34 столбца.