首页 > 解决方案 > VBA 查找/替换和文本颜色更改

问题描述

我有一个包含三列的电子表格。A 列中有一些句子(用黑色字体书写)。C 列有一个要搜索的术语列表。D 列有一个替换术语列表(以红色字体颜色书写)。

我正在尝试在 A 列中的句子中搜索 C 列中的搜索词。并且,如果 A 列包含 C 列中的任何搜索词,请将 A 列中的文本替换为 D 列中的替换词。

查找/替换功能效果很好。但我无法让 A 列中字符串的替换部分的字体颜色变为红色。

有什么想法吗?

这是我到目前为止的代码。

Private Sub CommandButton1_Click()

For i = 3 To 6

     Worksheets("Sheet1").Range("A2:A35").Select

     Selection.Replace What:=Cells(i, 3).Value, Replacement:=Cells(i, 4).Value, _
     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

Next

Worksheets("Sheet1").Cells(1, 1).Select

End Sub

标签: excelvbareplacefind

解决方案


尝试这个:

Private Sub CommandButton1_Click()

For i = 3 To 6

     Worksheets("Sheet1").Range("A2:A35").Select

     With Application.ReplaceFormat
       .Font.Color = vbRed
     End With

     Selection.Replace What:=Cells(i, 3).Value, Replacement:=Cells(i, 4).Value, _
     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, ReplaceFormat:=True

Next

Worksheets("Sheet1").Cells(1, 1).Select

End Sub

微软解释:

设置用于替换单元格格式的替换条件。然后在对 Range 对象的 Replace 方法的后续调用中使用替换条件。


推荐阅读