excel - 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
解决方案
尝试这个:
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 方法的后续调用中使用替换条件。
推荐阅读
- javascript - 错误:需要数据和盐参数(节点未接收来自角度的用户输入对象?)
- python - ModuleNotFoundError:没有名为“cherrypy”的模块
- ember.js - 无法使用“get”Ember 3.2 加载关系
- vue.js - vuetify v1.1 我可以为 v-card 颜色设置一些透明度吗?
- material-design - 在 Flutter 中平滑过渡状态
- java - Java和正确使用类层次结构
- swift - 如何以编程方式添加 imageView 宽度/高度?
- firebase - Firebase 托管页面未找到空缓存和硬重新加载错误
- javascript - 如何添加带圆圈的图像Reactjs
- reactjs - 如何用 jest 和酵素模拟 React 组件事件