VBA在标题不为空的情况下循环列

VBA在标题不为空的情况下循环列,vba,loops,Vba,Loops,如果列标题不是空的,我想开始循环遍历每一列。我不知道如何定位每列的标题,因为它是字母,而不是数字 我在谷歌上搜索了很多代码,但它们并不是我想要的 下面是代码。任何帮助都将不胜感激 Sub ColorGradient() '找到最后一个卷号 将最后一行设置为整数 Lastrow=Range(“A:A”).Find(“*”,SearchOrder:=xlByRows,SearchDirection:=xlPrevious)。行 作为色阶的暗淡cs 变暗rng As范围 '循环遍历每列 对于范围内的

如果列标题不是空的,我想开始循环遍历每一列。我不知道如何定位每列的标题,因为它是字母,而不是数字

我在谷歌上搜索了很多代码,但它们并不是我想要的

下面是代码。任何帮助都将不胜感激

Sub ColorGradient()
'找到最后一个卷号
将最后一行设置为整数
Lastrow=Range(“A:A”).Find(“*”,SearchOrder:=xlByRows,SearchDirection:=xlPrevious)。行
作为色阶的暗淡cs
变暗rng As范围
'循环遍历每列
对于范围内的每个rng(“B4:AA”和Lastrow)。列
'设置颜色渐变
设置cs=rng.FormatConditions.AddColorScale(ColorScaleType:=3)
'设置最低值的颜色
带cs.ColorScaleCriteria(1)
.Type=xlconditionvaluelowerstvalue
使用.FormatColor
.Color=RGB(248、105、107)
.TintAndShade=0
以
以
在中间
使用cs.ColorScaleCriteria(2)
.Type=xlConditionValuePercentile
.Value=50
使用.FormatColor
.Color=RGB(255、244、189)
.TintAndShade=0
以
以
"最高价值,
带cs.ColorScaleCriteria(3)
.Type=xlConditionValueHighestValue
使用.FormatColor
.Color=RGB(0、204、255)
.TintAndShade=0
以
以
下一个rng

End Sub
我不确定我是否完全理解,但首先测试“header”行值是否为空,然后设置列范围并对其执行操作

Option Explicit

Sub test()

Dim rHdrs As Range
Dim r As Range
Dim rCol As Range
Dim Lastrow As Integer

With ThisWorkbook.Sheets(1)

    Lastrow = .Columns(1).Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Set rHdrs = .Range("B3:AA3")

    For Each r In rHdrs
        If r.Value <> "" Then

            Set rCol = .Range(.Cells(4, r.Column), .Cells(Lastrow, r.Column))
            'loop through cells in rCol
            'do stuff with the non-empty header column ranges here

        End If
    Next r
End With

End Sub
选项显式
子测试()
作为范围的Dim RHDR
调光范围
变暗rCol As范围
将最后一行设置为整数
使用此工作簿。工作表(1)
Lastrow=.Columns(1).Find(“*”,SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row
设置rHdrs=.Range(“B3:AA3”)
对于RHDR中的每个r
如果r.值为“”,则
设置rCol=.Range(.Cells(4,r.Column),.Cells(Lastrow,r.Column))
'循环通过rCol中的单元格
'在此处使用非空标题列范围进行填充
如果结束
下一个r
以
端接头

我以为你是在这个工作簿上做这件事的。工作表(1)。

最初我有一个图像。但是我没有足够的声誉来发布它。我的标题在第3行。我想这样做:检查B3。1) 如果不是空白,则从B4开始对B列执行操作。2) 如果为空,则什么也不做。然后继续检查C3…直到它循环到AA。我更改了答案。我所要做的就是将“B4:AA4”更改为“B3:AA3”,并添加了注释“循环通过rCol中的单元格”,您可以通过a为rCol中的每个rng执行此操作。我将您的与我的合并,并进行了一些更改,它起到了作用。谢谢登山者。@Jim请随意查看我的帖子作为答案。谢谢!:)