Excel VBA如何仅修改选中区域内指定填充色的单元格颜色
解决方案
问题原因
你此前编写的两段代码都是直接对选中区域整体做属性判断和修改,没有逐个校验单个单元格的填充色,因此无法实现仅修改符合条件单元格的需求。
可直接使用的VBA代码
Sub mudacor() Dim cell As Range ' 遍历选中区域内的所有单元格 For Each cell In Selection ' 仅当单元格填充色为白色时执行修改 If cell.Interior.ColorIndex = 2 Then With cell.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 15987699 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If Next cell End Sub
逻辑说明
- 代码会遍历选中区域内的所有单元格,无论单元格是否存储内容都会按规则校验
- 仅填充色为白色(
ColorIndex = 2)的单元格会被修改为指定灰色,无填充(ColorIndex = xlNone)的单元格会自动跳过不处理 - 若后续需要调整判断条件或者目标颜色,直接修改对应
ColorIndex或者Color参数即可
内容的提问来源于stack exchange,提问作者Bruno Ranhel
相关产品推荐
相关产品推荐

