【问题标题】:VBA Find/Replace & Text Color ChangeVBA 查找/替换和文本颜色更改
【发布时间】:2020-02-24 04:15:32
【问题描述】:

我有一个包含三列的电子表格。 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

【问题讨论】:

  • 你能提供一个演示输入/输出的例子吗?我想我理解你想要做什么,但如果我能看到你期望的结果会更容易
  • 我认为您想要做的是将ReplaceFormat 设置为Font.Color = RGB(255,0,0) 或类似的东西。
  • 然而,这似乎替换了整个单元格的格式。不仅仅是最初找到的文本。
  • 如果单元格中的格式不同,您需要遍历所有字符以将格式设置为您想要的。
  • 在我的脑海中,您可以查找-替换并使用类似 $!{replaced text}$! 的内容,然后通过搜索 $!{*}$! 来跟踪您的替换,并在删除之前更新这些部分的格式$!{}$! 字符串的一部分。可能只是更容易准确地了解正在更改的内容,而无需检查每个单元格的文本。当然,您也可以只使用变量数组或其他方式查找->替换自己 - 这可能是最快的方法。

标签: excel vba replace find


【解决方案1】:

试试这个:

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

Microsoft Explanation:

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

【讨论】:

  • 感谢您回复我。我们这里越来越近了。上述解决方案将单元格中的所有单词更改为红色。是否可以只将字符串的替换部分更改为红色,而单元格中的其余文本保持黑色?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 2018-10-06
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多