ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 根据指定条件将单元格的文本用彩色标识

根据指定条件将单元格的文本用彩色标识

作者:绿色风 分类: 时间:2022-08-18 浏览:133
楼主
omnw
根据A2单元格中的内容,将A1单元中指定的文本标识为红色。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim i As Integer
  3.     Dim mt As String
  4.     Dim mt2 As String
  5.     Dim j As Integer
  6.     If Selection.Cells.Count > 1 Then Exit Sub
  7.     If Target.Address = "$A$2" Then
  8.         Target.Offset(-1, 0).Font.ColorIndex = xlAutomatic
  9.         For i = 1 To Len(Target)
  10.             mt = Mid(Target, i, 1)
  11.             For j = 1 To Len(Target.Offset(-1, 0))
  12.                 mt2 = Mid(Target.Offset(-1, 0), j, 1)
  13.                 If mt = mt2 Then
  14.                     Target.Offset(-1, 0).Characters(Start:=j, Length:=1).Font.ColorIndex = 3
  15.                 End If
  16.             Next
  17.         Next
  18.     End If
  19. End Sub
2楼
水星钓鱼
以上代码是将A2和A1作比较,凡是相同的文字都用红色字体显示。
以下代码是只显示包含的词组,不每个相同的字都显示

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. '将相邻的单元格的内容进行比较,如果包含其中的词组,则用红色字体显示
  3. Dim L1 As Long
  4. Dim L2 As Long
  5. Dim Counter As Long
  6. Dim Rng1 As Range
  7. Dim Rng2 As Range
  8. Set Rng1 = Target
  9. '如果是在A列,则不响应Change事件
  10. If Rng1.Column = 1 Then Exit Sub
  11. If Rng1 <> "" Then
  12.     Set Rng2 = Target.Offset(0, -1)
  13.     L1 = Len(Rng1)
  14.     L2 = Len(Rng2)
  15.     '如果L2长度小于L1,则L2不变色
  16.     If L2 >= L1 Then
  17.         For Counter = 1 To L2
  18.             If Mid(Rng2, Counter, L1) = Rng1 Then
  19.                 Rng2.Characters(Counter, L1).Font.ColorIndex = 3
  20.             End If
  21.         Next
  22.     End If
  23. Else
  24. Target.Offset(0, -1).Font.ColorIndex = xlColorIndexAutomatic
  25. End If
  26. End Sub

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap