vba - 循环遍历工作簿中所有工作表中的所有单元格,如果是红色则更改格式

标签 vba excel

我正在尝试将 Excel 工作簿的所有工作表的所有单元格中的所有红色文本更改为黑色。我正在使用以下内容:

Sub RedToBlack()
Dim Current As Worksheet
For Each Current In Worksheets
For Each cell In Current
    If cell.Font.ColorIndex = 3 Then
        cell.Font.ColorIndex = 0
    End If
  Next
Next
End Sub

我知道这是错误的,但想说明我正在尝试做什么。任何人都可以提供建议吗?感谢您的帮助,我对此很陌生。

最佳答案

你所拥有的可能会完成这项工作。然而,这将是极其低效的。更好的方法是像这样使用查找和替换。

'set the next find to find the red
With Application.FindFormat.Font
     .ColorIndex = 3
End With
'set the next find to replace with black
With Application.ReplaceFormat.Font
     .ColorIndex = 1
End With

'Do the actual replacing
For Each aSheet In ActiveWorkbook.Worksheets
     aSheet.Activate

     Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
     xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
Next aSheet

这适用于整个工作簿的所有工作表中的所有单元格。您也可以通过转到正常的查找和替换窗口然后按选项按钮来执行此操作。

关于vba - 循环遍历工作簿中所有工作表中的所有单元格,如果是红色则更改格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820167/

相关文章:

c# - 以编程方式编辑 Powerpoint 演示文稿中的文本

sql - 优化 SQL SELECT 进行 4000 次搜索,通过 VBA 进入 Excel

excel - VBA 运行时错误 -214724809 (80070057)

java - 如何使用 Docx4J 向现有表添加行

python - 使用 pandas 从 Excel 读取下拉值

excel - 从重复范围中获取某些值并将它们粘贴为一行

vba - 在编辑 MS Access 表单文本框时,如何获取 'Value' 属性?

excel - 获取 Usedrange 的函数出现错误 91

excel - Excel VBA 中坏和好的突出显示的颜色代码是什么?

vba - 根据列中的值对完整行进行着色