仅使用不同颜色的文本从Excel电子表格中删除特定颜色的文本

时间:2012-08-20 17:24:14

标签: excel vba excel-vba

我有一个电子表格,文字有两种颜色,通常在同一个单元格中。我想运行一个宏,它只删除它出现的每个单元格中的黑色文本。

2 个答案:

答案 0 :(得分:1)

如果您不想使用宏,为什么不使用“查找并选择”工具。转到“替换”。选择“选项”。选择“格式”并选择字体颜色或单元格颜色选项。选择你想要摆脱的颜色,将“替换为”框留空并点击“全部替换”

答案 1 :(得分:0)

这应该适合你:

Sub ForEachCharacterTextColor()
Dim wbk As Workbook
Dim i As Integer
Set wbk = ThisWorkbook
Set ws = wbk.Sheets(1)

Dim cell As Range

Cells.Select
Selection.NumberFormat = "@"
Range("A1").Select

On Error GoTo MyExitSub

    With ws
        For Each cell In ws.Range("A1:E2000").Cells
            'cell.Value = "'" & cell.Value
            For i = 1 To Len(cell)
                If cell.Characters(i, 1).Font.Color = RGB(0, 0, 0) Then
                    If Len(cell) > 0 Then
                        cell.Characters(i, 1).Delete
                    End If
                    If Len(cell) > 0 Then
                        i = i - 1
                    End If
                End If
            Next i
        Next cell
    End With


MyExitSub:
    If Err.Number > 0 Then
     MsgBox "Some of your cells are numbers formatted as text. You need to convert them to text completely."
     End
    End If
End Sub
祝你好运。 - 只要excel不认为您的任何单元格都是数字,它就会起作用。