如何在VBA中实现将一个单元格内中含有多个颜色的文字,却只删除白色字体??大神们帮帮忙

如题所述

Private Sub Worksheet_Activate() '遍历当前表格的所有单元格 '切换一下表格就可执行 '如果表格太大的话,可能会比较慢 'EXCEL2003测试成功 Dim 行数 As Integer Dim 列数 As Integer 行数= Me.UsedRange.Rows.Count 列数= Me.UsedRange.Columns.Count For X = 1 To 行数 For Y = 1 To 列数 Dim 单元格字符串 As String Dim 字符串长度 As Integer Dim 单元格字符集合 As New Collection Dim 单元格颜色集合 As New Collection 单元格字符串 = Me.Cells(X, Y).Value 字符串长度 = Len(单元格字符串) For i = 单元格字符集合.Count To 1 Step -1 'Excel2003无法自动清空 单元格字符集合.Remove (i) 单元格颜色集合.Remove (i) Next If 字符串长度 > 0 Then '拆分字符 For i = 1 To 字符串长度 单元格字符集合.Add (Mid(单元格字符串, i, 1)) Next '获取每个字符的颜色 For i = 1 To 字符串长度 单元格颜色集合.Add (Me.Cells(X, Y).Characters(i, 1).Font.Color) Next '删除指定RGB颜色的字符 For i = 单元格颜色集合.Count To 1 Step -1 If 单元格颜色集合(i) = RGB(255, 255, 255) Then 单元格字符集合.Remove (i) 单元格颜色集合.Remove (i) End If Next '串联每个字符 单元格字符串 = "" For i = 1 To 单元格字符集合.Count 单元格字符串 = 单元格字符串 & 单元格字符集合(i) Next Me.Cells(X, Y).Value = 单元格字符串 '设置每个字符的颜色 For i = 1 To 单元格颜色集合.Count Me.Cells(X, Y).Characters(i, 1).Font.Color = 单元格颜色集合(i) Next End If Next Next End Sub
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网