Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel宏:如何在一定范围内更改行的单元格颜色_Vba_Excel - Fatal编程技术网

Vba Excel宏:如何在一定范围内更改行的单元格颜色

Vba Excel宏:如何在一定范围内更改行的单元格颜色,vba,excel,Vba,Excel,我的范围是C17:W39。我希望根据E列中的值将行设置为灰色或白色。如果体积为实际值,我希望行为灰色,如果值为猜测值,我希望行为白色。我需要它,以便只改变范围内的单元格颜色,而不是整行。下面的代码适用于第一行,但我不知道如何使其在其余范围内循环。任何帮助都将不胜感激。谢谢 Sub Color() Dim myRange As Range Dim cell As Range Set myRange = Range("C17:W17") For Each ce

我的范围是C17:W39。我希望根据E列中的值将行设置为灰色或白色。如果体积为实际值,我希望行为灰色,如果值为猜测值,我希望行为白色。我需要它,以便只改变范围内的单元格颜色,而不是整行。下面的代码适用于第一行,但我不知道如何使其在其余范围内循环。任何帮助都将不胜感激。谢谢

Sub Color()
    Dim myRange As Range
    Dim cell As Range
    Set myRange = Range("C17:W17")
        For Each cell In myRange
        If cell.Value = "ACTUAL" Then myRange.Interior.ColorIndex = 15
        If cell.Value = "GUESS" Then myRange.Interior.ColorIndex = 0
    Next
End Sub

您可以这样更改代码:

Sub Color()
    Dim myRange As Range
    Dim cell As Range
    Set myRange = Range("E17:E39")
        For Each cell In myRange
        If cell.Value = "ACTUAL" Then
            Range("C" & cell.Row & ":W" & cell.Row).Interior.ColorIndex = 15
        End If
        If cell.Value = "GUESS" Then
            Range("C" & cell.Row & ":W" & cell.Row).Interior.ColorIndex = 0
        End If
    Next
End Sub

这将遍历范围
E17:E39
中的每个单元格,并根据在E列中找到的值设置从C列到W列的单元格格式。

我同意@pnuts。为什么不使用条件格式?可以使用或不使用VBA代码对单元格进行条件格式设置。