VBA中的错误:在循环中选择不连续的单元格范围

我的要求是根据 C 列单元格中输入的文本更改一行中不同单元格的单元格背景颜色。这适用于工作表中的所有行。

下面是代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long

For i = 4 To 1800
Range("D" & i, "AW" & i).Interior.ColorIndex = 0


If Range("C" & i) = "Open" Then
    Range("F" & i & ":H" & i, "K" & i, "L" & i, "AA"&i, "AD"&i, "AF"&i).Interior.ColorIndex = 15
ElseIf Range("C" & i) = "Boil" Then
    Range("I" & i, "S" & i).Interior.ColorIndex = 15
    
End If

Next i

End Sub

但这给出了错误,说“参数数量错误或属性分配无效。让我知道,我哪里出错了。我是 VBA 新手,这非常令人沮丧。

回答

我不喜欢将太多东西连接在一起,而是使用令牌替换方法:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    
    Me.Range("D4", "AW1800").Interior.ColorIndex = 0 'faster like this...
    For i = 4 To 1800
        Select Case Me.Range("C" & i).Value
            Case "Open"
                Me.Range(Replace("F?:H?,K?,L?,AA?,AD?,AF?", "?", i)).Interior.ColorIndex = 15
            Case "Boil"
                Me.Range("I" & i, "S" & i).Interior.ColorIndex = 15
        End Select
    Next i

End Sub


以上是VBA中的错误:在循环中选择不连续的单元格范围的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>