前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧80: 添加可视化的指示标志

Excel实战技巧80: 添加可视化的指示标志

作者头像
fanjy
发布2020-06-03 09:06:42
8470
发布2020-06-03 09:06:42
举报
文章被收录于专栏:完美Excel完美Excel

视觉效果比枯燥的数字更有表现力。我们常常将数据图表化,我们也可以对图表中的一些细节可视化以作为补充。本文将展示如何在解释文本中添加可视化的指示标志,使读者在看文字之前对其表达的含义有一个大致的了解。

实现在文本中添加可视化的指示标志有多种方法,在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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档