Я использую код VBA для выделения фрагментов текста в многострочной ячейке. Все работает нормально, за исключением того, что, когда я дважды щелкаю ячейку после того, как был установлен жирный шрифт, жирный шрифт «прыгает» на один символ вправо, как показано на рисунке ниже:
Это фрагмент кода, который я использую, чтобы выделить даты:
rng.Characters(Start:=lngStart, Length:=lngEnd).Font.Bold = True
У меня есть ощущение, что это может иметь какое-то отношение к разрыв строки Я использую конкатенацию с Chr(10)
для их создания. (Например, strLine1 & Chr(10) & strLine2
).
Я использую Office 365, Excel, версия 1908.
РЕДАКТИРОВАТЬ:
Этот код я использую для полужирного ввода ячеек:
Public Sub BoldActionDates(lsoTarget As ListObject, strColumnName As String, lngDataRow As Long)
Const LNG_LENGTH_DATE_STRING As Long = 10
Dim colStartingPoints As Collection
Dim varIndex As Variant
Dim rngAction As Range
Set rngAction = lsoTarget.ListColumns(strColumnName).DataBodyRange(lngDataRow)
Set colStartingPoints = GetStartingPointsDateStrings(rngAction.Value)
If colStartingPoints.Count = 0 Then Exit Sub
rngAction.Font.Bold = False
For Each varIndex In colStartingPoints
rngAction.Characters(Start:=CLng(varIndex), Length:=LNG_LENGTH_DATE_STRING).Font.Bold = True
Next varIndex
End Sub
GetStartingPointsDateStrings
возвращает коллекцию, которая содержит значения начальных точек, например, для примера, показанного выше, коллекция выглядит следующим образом:
Кроме того, в листе нет события BeforeDoubleClick, только несвязанное событие для BeforeRightClick.