Я уже писал этот вопрос, но он был признан слишком расплывчатым. Итак, здесь я пытаюсь снова.
У меня есть ячейка с буквами разных цветов. Каждая буква равномерно распределена между собой (см. Ниже). Мне нужно разделить их на отдельные ячейки с сохранением их цветового форматирования с использованием VBA.
Фактические цвета шрифта выражены в []
скобках
Мне нужно разделить:
|A |
1 |Alan[Red] Betty[Blue] Cass[Red]|
Into:
|A |
1 |Alan[Red] |
2 |Betty[Blue] |
3 |Cass[Red] |
Мне удалось извлечь только значения в исходной строке, но не форматирование отдельной буквы.
Я также пытался Text to Columns
, но все разделенные ячейки не отформатированы. Даже ручное копирование не работает, если в ячейке выделена только частичная строка.
Как можно выполнить sh разбиение строки при сохранении цвета с помощью VBA?
Я использовал код часть большего количества других вещей, но упрощенная логика c такова:
Sub test()
Dim strLength As Long
Dim breakPos As Long
Dim spaceCount As Long
strLength = Len(Cells(1, 1))
spaceCount = strLength - Len(Replace(Cells(1, 1), " ", ""))
For i = 1 To spaceCount
strLength = Len(Cells(i, 1))
breakPos = InStr(1, Cells(i, 1), " ")
Cells(i + 1, 1) = Right(Cells(i, 1), strLength - breakPos)
Cells(i, 1) = Left(Cells(i, 1), breakPos - 1)
Next i
End Sub