Частичное выделение ячейки, установленное VBA, изменяется случайным образом при двойном щелчке по ячейке. - PullRequest
0 голосов
/ 27 апреля 2020

Я использую код VBA для выделения фрагментов текста в многострочной ячейке. Все работает нормально, за исключением того, что, когда я дважды щелкаю ячейку после того, как был установлен жирный шрифт, жирный шрифт «прыгает» на один символ вправо, как показано на рисунке ниже:

enter image description here

Это фрагмент кода, который я использую, чтобы выделить даты:

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 возвращает коллекцию, которая содержит значения начальных точек, например, для примера, показанного выше, коллекция выглядит следующим образом:

enter image description here

Кроме того, в листе нет события BeforeDoubleClick, только несвязанное событие для BeforeRightClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...