下划线是在字体中设置。
给单元格内容添加下划线,可以整体添加下划线也可以部分字符添加下划线。
整体添加下划线使用Range对象的Font属性设置,部分字符添加下划线使用Range对象的Characters属性返回部分字符对象,然后再用Font属性设置。
添加下划线通过设置Font对象的Underline属性。
通过上述知识,以下代码举例示范了如何添加A1单元格前3个字符的下划线:
Sub QQ1722187970()
Const xlUnderlineStyleSingle = 2
Const xlUnderlineStyleNone = -4142
Const xlUnderlineStyleDouble = -4119
Dim oRng As Range
Set oRng = Excel.ActiveCell
'添加整个单元格的下划线
With oRng.Font
'设置单下划线
.Underline = xlUnderlineStyleSingle
'设置双下划线
.Underline = xlUnderlineStyleDouble
'设置无下划线
.Underline = xlUnderlineStyleNone
End With
'为前3个字符添加下划线
With oRng.Characters(1, 3).Font
.Underline = xlUnderlineStyleSingle
End With
End Sub
当单元格中的多个部分字符有下划线时,为了返回所有的下划线开始字符和结束字符所在的位置,可以使用如下的代码:
Sub QQ1722187970()
Const xlUnderlineStyleSingle = 2
Const xlUnderlineStyleNone = -4142
Const xlUnderlineStyleDouble = -4119
'定义字典对象变量
Dim oDic As Object
'创建字典对象
Set oDic = CreateObject("Scripting.Dictionary")
oDic.RemoveAll
Dim oFont1 As Font
Dim oFont2 As Font
Dim oRng As Range
Set oRng = Excel.ActiveCell
Dim n As Long
With oRng
'获取单元格字符长度
sLen = .Characters.Count
'遍历所有字符
For j = 1 To sLen
'存储所有字符的下划线状态
With .Characters(j, 1).Font
oDic.Add j, .Underline
End With
Next j
arrItems = oDic.items
'清空字典
oDic.RemoveAll
'存储所有的下划线的开始和终止字符位置
For j = 0 To UBound(arrItems) - 1
If arrItems(j) = xlUnderlineStyleNone And arrItems(j + 1) = xlUnderlineStyleSingle Then
oDic.Add n, j + 2
End If
If arrItems(j + 1) = xlUnderlineStyleNone And arrItems(j) = xlUnderlineStyleSingle Then
oDic.Item(n) = oDic.Item(n) & "-" & (j + 1)
n = n + 1
End If
Next j
'返回所有下划线的起始和终止字符位置数组,"开始-结束"的形式
arrItems = oDic.items
For j = 0 To UBound(arrItems)
arrTemp = Split(arrItems(j), "-")
'下划线开始字符的位置
iStart = Val(arrTemp(0))
'下划线结尾字符的位置
iEnd = Val(arrTemp(1))
Next j
End With
Set oDic = Nothing
End Sub


发表评论