Есть такая проблема. В ячейке находится текст, посередине каждого слова в этом тексте - находится цифра. Эти слова объединены значками "+". Вопрос в том, что числа - неодинаковые: какое-то больше, какое-то меньше.
Как макросом - отсортировать этот текст с числами ? (То есть в текстовой строке - сперва поставить те слова, в которых число больше, а затем расставить остальные слова по-убыванию чисел в них)
Как макросом - отсортировать этот текст с числами ?
Код
Sub iSortDigit()
Dim mo As Object
Dim n As Integer
Dim i As Long
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "[а-я]+(\d)[а-я]+"
If .test(Cells(16, 5)) Then
Set mo = .Execute(Cells(16, 5))
For n = 0 To mo.Count - 1
Cells(16 + n, 10) = mo(n).SubMatches(0)
Cells(16 + n, 11) = mo(n)
Next
Range(Cells(16, 10), Cells(16 + n - 1, 11)).Sort Key1:=Cells(16, 10), _
Order1:=xlDescending, Header:=xlNo
Range("E22") = Join(Application.Transpose(Range(Cells(16, 11), Cells(16 + n - 1, 11))), "+")
Range(Cells(16, 10), Cells(16 + n - 1, 11)).ClearContents
End If
End With
End Sub