#excel #vba #string #text
#excel #vba #строка #текст
Вопрос:
У меня есть электронная таблица Excel, и в одном столбце есть различные комментарии для конкретной записи (строки). Каждый раз, когда пользователь добавляет новый комментарий, перед новым комментарием добавляется текущая дата («дд.мм.гггг»). Следующий пример представляет одну ячейку с различными комментариями:
29.03.2019: newest comment
28.03.2019: an older comment
25.02.2019: more test
maybe with line break
12.12.2018: the first comment
Что я ищу, так это способ определить все части в значении ячейки (string), которые представляют дату (в формате dd.mm.yyy) и установить стиль шрифта на bold.
Таким образом, это должно выглядеть следующим образом:
29.03.2019: последний комментарий
28.03.2019: более старый комментарий
25.02.2019: дополнительный тест
возможно, с разрывом строки
12.12.2018: первый комментарий
Ответ №1:
Это должно сработать, но это немного излишне, особенно если ваш диапазон большой
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Position As Integer
Dim FontRange As Range
Dim cell As Range
Set FontRange = ActiveSheet.Range("A1:A100") ' set your range with comments
For Each cell In FontRange
Position = InStr(cell.Value, ":")
If Position > 0 Then
With cell.Characters(Start:=1, Length:=Position).Font
.FontStyle = "Bold"
End With
End If
Next cell
End Sub
Комментарии:
1. Привет, это работает, но только для первой даты в ячейке, а также выделяет текст жирным шрифтом, когда это не дата