Excel按A列关键词批量着色VBA代码无效问题求助
修复根据A列关键词设置行填充颜色的VBA代码
你的代码运行无反应完全是因为几个拼写错误,以下是问题点和修正后的完整代码:
原代码的错误点
Criterial1:参数名拼写错误,正确应为Criteria1Interiror:属性名拼写错误,正确应为Interior.AutoFiler:方法名拼写错误,正确应为.AutoFilter
修正后的完整代码
Public Sub ColorCHange2() Dim mapping As Object, itm As Variant Set mapping = CreateObject("Scripting.Dictionary") ' 键:颜色值,值:对应关键词数组 mapping(XlRgbColor.rgbLightPink) = Array("exclude from emails", "exclude from listings") mapping(XlRgbColor.rgbLightGreen) = Array("include in billing list", "include in emails") Application.ScreenUpdating = False Sheet1.AutoFilterMode = False With Sheet1.UsedRange ' 清除原有填充色 .Interior.ColorIndex = xlColorIndexNone For Each itm In mapping ' 根据关键词数组过滤A列 .AutoFilter Field:=1, Criteria1:=mapping(itm), Operator:=xlFilterValues ' 为过滤后的行设置填充色(跳过表头行) .Offset(1).Resize(.Rows.Count - 1, .Columns.Count).Interior.Color = itm Next ' 关闭自动筛选 .AutoFilter End With Application.ScreenUpdating = True End Sub
额外说明
- 代码假设你的数据表头在
UsedRange的第一行,Offset(1)会跳过表头只设置数据行的颜色 - 如果你的数据没有表头,需要去掉
.Offset(1).Resize(.Rows.Count - 1, .Columns.Count),直接用.Interior.Color = itm - 确保
Sheet1是你要操作的工作表的正确代号,也可以改为工作表名,比如ThisWorkbook.Worksheets("你的表名")
内容的提问来源于stack exchange,提问作者basic math
相关产品推荐
相关产品推荐

