excel - 更改单元格颜色时下标超出范围错误

标签 excel vba runtime-error subscript

嗨,我是 vba 的新手,我可能不太了解它,但我无法解释为什么在代码应该更改单元格的背景颜色时出现“运行时错误 9:下标超出范围”错误给另一个

 Sub CompareWorksheets(ws1 As Worksheet, ws2 As Worksheet)
    Dim r As Long, c As Integer
    Dim lr1 As Long, lr2 As Long, lc1 As Integer, lc2 As Integer
    Dim maxR As Long, maxC As Integer, cf1 As String, cf2 As String
    Dim DiffCount As Long
    Application.ScreenUpdating = False
    With ws1.UsedRange
        lr1 = .Rows.Count
        lc1 = .Columns.Count
    End With
    With ws2.UsedRange
        lr2 = .Rows.Count
        lc2 = .Columns.Count
    End With
    maxR = lr1
    maxC = lc1
    If maxR < lr2 Then maxR = lr2
    If maxC < lc2 Then maxC = lc2
    DiffCount = 0
    For c = 1 To maxC
        For r = 1 To maxR
            cf1 = ""
            cf2 = ""
            On Error Resume Next
            cf1 = ws1.Cells(r, c).FormulaLocal
            cf2 = ws2.Cells(r, c).FormulaLocal
            On Error GoTo 0
            If cf1 <> cf2 Then
                DiffCount = DiffCount + 1
                ws1.Cells(r, c).Activate
                ws1.Cells(r, c).Select
 =============> ws1.Cells(r, c).Interior.ColorIndex = RGB(200, 20, 20) <============
                End If
            Next r
        Next c
        Application.ScreenUpdating = True
    End Sub

最佳答案

Cell.Interior.ColorIndex不是 RGB 值,而是一个枚举值。
可能的值为:

  • xlColorIndexAutomatic这意味着自动颜色
  • xlColorIndexNone这意味着没有颜色

  • 这就是您无法成功将其设置为 的原因。 RGB 值(value)。

    将背景颜色设置为 RGB 颜色,请使用 Interior.Color而是属性(property)。

    关于excel - 更改单元格颜色时下标超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368513/

    相关文章:

    ios - 执行 segue 时线程 1 : signal SIGABRT,

    php - 使用phpexcel将excel公式转至mysql数据库

    python - Pandas read_excel 不读取某些 xlsx 文件,返回空数据框

    C++ ODBC 未处理的异常/访问冲突写入位置

    excel - 复选框 "Trust access to the VBA Project Model"是什么意思?

    vba - 编写这样的重复代码的最佳方法是什么?

    java - 使用 jena 保存本体时出错

    c# - 使用 C# 将文本添加到 Excel 工作表中

    vba - 使用 VBA 在 Excel 中选择形状

    forms - ACCESS 2010 系统资源超标