使用范围

时间:2016-04-06 08:02:51

标签: excel vba excel-vba loops

按照我之前的问题: Background Color based on difference with cell 。我现在想将此函数应用于一系列行。

我想申请的功能是:

If Sheets("X").Range("E18") > Sheets("blocked(R)").Range("D18") Then
    Sheets("X").Range("E18").Interior.ColorIndex = 10

我需要应用此功能的范围是固定的:D18:E1200。 但是,此范围内将有一个有效过滤器。

Autofill代码当然不起作用,为1200行中的每一行编写一行代码都会很疯狂。

我一直在寻找和阅读,我认为它必须是这样的:

Dim rng As Range
Dim row As Range
Dim cell As Range

Set rng = Range("A1:C2")

For Each row In rng.Rows
  For Each cell in row.Cells
    'Do Something
  Next cell
Next row

但我似乎没有让它发挥作用,我希望有些人指出社区的正确方向。

1 个答案:

答案 0 :(得分:0)

Sub test()

    Dim rngApply As Range
    Set rngApply = Sheets("X").Range("D18:E1200")
    Dim varIndex As Variant

    For Each varIndex In rngApply
        If varIndex.Value > Sheets("blocked(R)").Range("D18") Then
            varIndex.Interior.ColorIndex = 10
        End If
    Next

End Sub