我使用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
返回一个Collection,其中包含起点的值,例如对于上面显示的示例,集合看起来像这样:
此外,工作表中没有BeforeDoubleClick-Event,只有一个与BeforeRightClick不相关的事件。