You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Cells对象的Interior.ColorIndex设置填充色时触发运行时错误9的原因

VBA下标越界错误原因及解决方法
  • 错误根源:你用vbRed给Interior.ColorIndex赋值,但vbRed是RGB颜色常量(值为255),而ColorIndex只接受1-56范围内的颜色索引值,255不在这个合法区间,所以触发「下标越界」错误。
  • 为什么字体设置没问题?注释里的Font.Color可以直接用vbRed,因为Font.Color支持RGB颜色值,和Interior.ColorIndex的参数规则完全不同。

两种修正方案

方案1:改用Color属性(推荐,更直观)
把出错的代码行替换成:

Cells(i, 1).Interior.Color = vbRed

方案2:使用红色对应的ColorIndex值
红色的ColorIndex索引是3,代码改成:

Cells(i, 1).Interior.ColorIndex = 3

额外优化建议

原代码循环到Rows.Count会遍历整张工作表的1048576行,效率极低。建议先获取A列最后一行有数据的行号,再缩小循环范围:

Dim i As Long, LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 获取A列最后一行数据的行号

Columns(1).Interior.ColorIndex = 2
For i = 1 To LastRow
    If Cells(i, 1).Value < Range("E2").Value And Not IsEmpty(Cells(i, 1).Value) Then
        Cells(i, 1).Interior.Color = vbRed
    End If
Next i

内容的提问来源于stack exchange,提问作者Buddhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:40:55