Я хотел бы разделить текст в одной ячейке на 2 ячейки на основе форматирования содержимого в ячейке. На изображении ниже: я хотел бы отделить текст синим от адреса электронной почты. Может ли кто-нибудь предложить формулу excel или обходной путь для этого?Отдельный текст в ячейке excel на основе форматирования
ответ
Я нашел способ, который работает, но я не знаю, ваши цвета шрифта коды, так что в моем примере я использую красный. Вам нужно будет выяснить цвета шрифта в ваших ячейках.
Используйте MsgBox ActiveCell.Characters(Start:=1, Length:=1).Font.Color
, чтобы получить код для первого символа в ActiveCell
.
Как он работает, он проверяет каждый символ в строке 1 за раз. Если символ красного цвета, он добавляет цифру в переменную c
. В конце я оставляю c
количество символов.
Sub test1()
Dim i As Integer
Dim c As Integer
Dim l As Integer
While ActiveCell.Value <> ""
i = 1
c = 0
l = Len(ActiveCell.Value)
While i <= l
If ActiveCell.Characters(Start:=1, Length:=i).Font.Color = 255 Then
c = c + 1
i = i + 1
Else
i = i + 1
End If
Wend
ActiveCell.Offset(0, 1).Value = Left(ActiveCell.Value, c)
ActiveCell.Offset(0, 2).Value = Right(ActiveCell.Value, l - c)
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Результаты в следующем:
Можно ли отделить синий текст от другого с образцом, как точка с запятой? Потому что тогда вы можете разделить строку, которая включает значение ячейки: StrArray = Split(CellXY.Value, ";")
strArray - это строковый массив, который получает два элемента: «Arnald, Biarb» и «[email protected]». Тогда вам просто нужно сказать, какая ячейка должна получить какое значение. Как образец: CellXY.Value = strArray(0)
Нажмите Alt + F11, чтобы открыть Microsoft Visual Basic для приложений окна
Past следующий код:
Function GetBoldString(workCell As Range) strLen = Len(workCell) GetBoldString = "" For i = 1 To strLen If workCell.Characters(i, 1).Font.Bold Then GetBoldString = GetBoldString & workCell.Characters(i, 1).Text End If Next i End Function Function GetNoBoldString(workCell As Range) strLen = Len(workCell) GetNoBoldString = "" For i = 1 To strLen If workCell.Characters(i, 1).Font.Bold = False Then GetNoBoldString = GetNoBoldString & workCell.Characters(i, 1).Text End If Next i End Function
Вернуться в таблицу.
В клетке, где вы хотите смелую часть пасты:= GetBoldString (A1)
В клетке, где вы не хотите, не жирная часть пасты:
= GetNoBoldString (A1)
Замените A1 ссылкой на ячейку, которую хотите разбить.
Работая над свойствами workCell.Characters (i, 1), вы можете разделить другие атрибуты формата, такие как цвет.
Вот две функции VBA, чтобы отделить строку от любого цвета, отличного от черного, от черной части.
Function GetColorString(workCell As Range)
strLen = Len(workCell)
GetColorString = ""
For i = 1 To strLen
If workCell.Characters(i, 1).Font.Color <> vbBlack Then
GetColorString = GetColorString & workCell.Characters(i, 1).Text
End If
Next i
End Function
Function GetBlackString(workCell As Range)
strLen = Len(workCell)
GetBlackString = ""
For i = 1 To strLen
If workCell.Characters(i, 1).Font.Color = vbBlack Then
GetBlackString = GetBlackString & workCell.Characters(i, 1).Text
End If
Next i
End Function
С уважением
- 1. Excel: отдельный текст в ячейке
- 2. Изменен текст в ячейке excel?
- 3. Показать текст в ячейке excel
- 4. excel отдельный текст и цифры
- 5. Формат форматирования в формате Excel - изменение текста в ячейке
- 6. В.Б. Использование Excel Состояние форматирования на Текст
- 7. VBA: Заменить текст на основе форматирования
- 8. Excel: игнорировать текст в ячейке, считать только число в ячейке
- 9. Пытается скрыть текст в ячейке excel
- 10. Не удалось удалить текст в ячейке excel
- 11. Отдельный текст на входе
- 12. скрывать строки в excel на основе слов в ячейке
- 13. Как повторить код на основе числа в ячейке в Excel?
- 14. Удалить строки в Excel на основе данных в одной ячейке
- 15. Вставить значение на основе форматирования
- 16. Как заменить текст в ячейке Использование условного форматирования
- 17. Ошибка форматирования даты Excel
- 18. Как вводить текст в массив PHP на основе форматирования текста
- 19. Excel, как поместить текст в ячейку, на основе ячейки witdh
- 20. Excel Условное форматирование на основе данных в правой ячейке
- 21. местоположения ячейки excel на основе значения в другой ячейке
- 22. Формула Excel - Умножение на основе символов в другой ячейке
- 23. Условия форматирования Excel форматирования
- 24. Условные строк форматирования на основе ячейки динамической
- 25. Проверка форматирования ячеек в Excel
- 26. Excel Countifs на основе ячейки, содержащей текст
- 27. Условное форматирование на основе формулы Excel
- 28. Формат форматирования ввода данных пользователем как текст
- 29. Сохранять форматирование в ячейке excel
- 30. Excel Display% разметки в ячейке
Спасибо, что работал как шарм! – BountyHunter