如何修改Excel宏,实现某列包含指定关键词时自动修改对应行颜色
修改方案
你可以使用VBA内置的InStr函数实现关键词包含匹配,这个函数会返回关键词在单元格字符串中的起始位置,只要返回值大于0就代表字符串包含目标关键词。
修改后的完整代码
' 可选:模块顶部加这行代码,即可实现不区分大小写匹配,比如cerato、Cerato都能被识别 Option Compare Text Sub ColorMacro() Dim i As Long, r1 As Range, r2 As Range ' 循环起止值去掉引号,符合Long类型变量的使用规范 For i = 2 To 180 Set r1 = Range("D" & i) Set r2 = Range("A" & i & ":O" & i) ' 用InStr判断是否包含关键词,大于0即为存在 If InStr(1, r1.Value, "CERATO") > 0 Then r2.Interior.Color = vbRed If InStr(1, r1.Value, "NIRO") > 0 Then r2.Interior.Color = vbBlue If InStr(1, r1.Value, "PICANTO") > 0 Then r2.Interior.Color = vbYellow Next i End Sub
核心修改说明
- 把原来的等值判断
r1.Value = "关键词"替换为InStr(1, r1.Value, "关键词") > 0,只要单元格内容包含目标关键词就会触发颜色设置 - 可选开启
Option Compare Text,避免大小写不匹配导致的识别失败 - 修正了原代码中循环变量起止值加引号的不规范写法,避免潜在的类型转换错误
内容的提问来源于stack exchange,提问作者Alex Castell-spence
相关产品推荐
相关产品推荐

