视觉效果比枯燥的数字更有表现力。我们常常将数据图表化,我们也可以对图表中的一些细节可视化以作为补充。本文将展示如何在解释文本中添加可视化的指示标志,使读者在看文字之前对其表达的含义有一个大致的了解。
实现在文本中添加可视化的指示标志有多种方法,在thespreadsheetguru.com中介绍了3种方法,下面逐一介绍。
方法1:使用条件格式
可以使用条件格式中的三色交通图标,如下图1所示。
图1
在列C的单元格中,输入列B中的相应公式,选中这些单元格,单击功能区“开始”选项卡中的“条件格式——新建规则”,在弹出的对话框中进行如下图2所示的设置。
图2
方法2:使用特殊字体
可以对特定的字符使用Wingdings3字体来获取指示标志符号。例如,下图3为要添加指示标志的文本。
图3
首先,在文本前面添加特定字符,如下图4所示。
图4
然后,设置字体颜色,如下图5所示。
图5
最后,设置字体为Wingdings3,得到指示标志,如下图6所示。
图6
方法3:使用VBA代码自动添加标志
选择要添加指示标志的文本,运行VBA代码,将循环添加3种标志之中的一种标志,如下图7所示。
图7
实现的代码:
代码语言:javascript复制'在所选文本开头添加三角指示标志
Sub TextTickmark_Triangle()
Dim cell As Range
Dim TextFont As String
Dim TickChar As String
Dim TickColor As Long
Dim BoldArray() As Variant
Dim BoldOffset As Integer
Dim y As Long
Dim x As Long
'确定方向和颜色
If TypeName(Selection) <>"Range" Then Exit Sub
'遍历所选区域的每个单元格
For Each cell In Selection.Cells
'存储字体类型
TextFont = cell.Characters(1, 1).Font.Name
'确定要添加的标志颜色/类型
If TextFont = "Wingdings 3" Then
Select Case Left(cell.Text, 2)
Case "p "
'红色
TickColor = -16776961
TickChar = "q "
BoldOffset = 0
Case "q "
'橙色
TickColor = 49407
TickChar = "u "
BoldOffset = 0
'重置
Case "u "
TickColor = 0
TickChar = ""
BoldOffset = -2
Case Else
Exit Sub
End Select
Else
'绿色
TickColor = -11489280
TickChar = "p "
BoldOffset = 2
End If
'重置Bold Character数组
Erase BoldArray
ReDim BoldArray(0)
y = 0
'记录在文本中的粗体字符
For x = 1 To Len(cell.Text)
If cell.Characters(x, 1).Font.FontStyle ="Bold" Then
ReDim Preserve BoldArray(y)
BoldArray(y) = x BoldOffset
y = y 1
End If
Next x
'从文本中移除前一个标志
If TickChar <> "p " Then
cell.Font.Color = cell.Characters(3,1).Font.Color
cell.Font.Name = cell.Characters(3,1).Font.Name
cell.FormulaR1C1 = Right(cell.Text,Len(cell.Text) - 2)
End If
'添加标志
If TickChar <> "" Then
cell.FormulaR1C1 = TickChar & cell.Text
'确保文本不是粗体
cell.Font.FontStyle = "Normal"
With cell.Characters(Start:=1,Length:=1).Font
.Name = "Wingdings 3"
.Color = TickColor
End With
End If
'重新将文本中原粗体字符加粗
If Not IsEmpty(BoldArray(0)) Then
For x = LBound(BoldArray) ToUBound(BoldArray)
cell.Characters(Start:=BoldArray(x),Length:=1).Font.FontStyle = "Bold"
Next x
End If
Next cell
End Sub