如何在Excel VBA中循环浏览列?

如何在Excel VBA中循环浏览列?,excel,vba,Excel,Vba,我想循环遍历第一行的每一列,如果在列标题中找到作业,那么我需要循环遍历该列的每个单元格,如果单元格值小于5,则为整行着色。这就是我正在尝试但失败的原因: Sub rr() Dim a, i, col As Integer Dim r As Range r = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column a = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row For i = 2

我想循环遍历第一行的每一列,如果在列标题中找到作业,那么我需要循环遍历该列的每个单元格,如果单元格值小于5,则为整行着色。这就是我正在尝试但失败的原因:

Sub rr()
Dim a, i, col As Integer
Dim r As Range

r = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
a = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To a Step 1
For col = 1 To r Step 1

If Cells(1, col).Value = "job" Then Cells(1 + 1, col).Activate
For Each cell In r

    If r.Value <= 5 Then ActiveSheet.Range(Cells(2, 1), Cells(2, r)).Interior.ColorIndex = 38 Else: Selection.Offset(1, 0).Selection

Next c

Next col

Next i
Sub-rr()
Dim a,i,col为整数
调光范围
r=ActiveSheet.Cells(1,Columns.Count).End(xlToLeft).Column
a=ActiveSheet.Cells(Rows.Count,1).End(xlUp).Row
对于i=2到步骤1
对于col=1至r步骤1
如果单元格(1,列).Value=“作业”,则单元格(1+1,列).Activate
对于r中的每个单元格

如果r.Value我不确定为什么不使用条件格式,但如果必须使用VBA,可能是这样的

Sub tgr()

    Dim rngFound As Range
    Dim rngColor As Range
    Dim strFirst As String

    ActiveSheet.AutoFilterMode = False
    Set rngFound = Rows(1).Find("Job", Cells(1, Columns.Count), xlValues, xlWhole)
    If Not rngFound Is Nothing Then
        Cells.Interior.Color = xlNone
        With Intersect(ActiveSheet.UsedRange, Columns(rngFound.Column))
            .AutoFilter 1, "<=5"
            On Error Resume Next
            Set rngColor = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
            On Error GoTo 0
            If Not rngColor Is Nothing Then rngColor.EntireRow.Interior.ColorIndex = 38
            .AutoFilter
        End With
    Else
        MsgBox "No column with heading ""Job"" exists in this worksheet.", , "Exiting macro"
    End If

    Set rngFound = Nothing
    Set rngColor = Nothing

End Sub
Sub-tgr()
暗淡的rngFound As范围
暗淡的RNG颜色范围
Dim strFirst作为字符串
ActiveSheet.AutoFilterMode=False
设置rngFound=Rows(1).Find(“作业”,单元格(1,Columns.Count),xlValues,xlother)
如果不是,那么rngFound什么都不是
Cells.Interior.Color=xlNone
带Intersect(ActiveSheet.UsedRange,列(rngFound.Column))
.自动筛选1,“