语法引用通过单元格地址标识的特定列范围的循环?

时间:2018-10-15 20:16:15

标签: excel vba

主工作表上的单元格C1是相邻工作表上列标题的下拉列表,称为“选项”,其中C1:J1是选项。到目前为止,我已经有了这段代码,可以确定用户在主工作表上选择了“选项”表上的哪一列。

Dim rngX As Range
Set rngX = Worksheets("Options").Range("A1:J1").Find(Range("C1"), lookat:=xlPart)
If Not rngX Is Nothing Then
    'MsgBox Chr(34) & Range("C1").Value & Chr(34) & " found at " & rngX.Address
End If

结果是,当我从“主”工作表上的下拉列表中进行选择时,我在“选项”页面的顶行中知道与该名称匹配的单元格的地址。我只想根据选项页中该标头下方的2-81行是否包含“ Y”或“ N”来执行特定的代码行。

如果是Y

getNthRegion(ActiveSheet,{{1-80}}).Hidden = False 

如果是N

getNthRegion(ActiveSheet,{{1-80}}).Hidden = True

如何将列从已拥有的地址中剔除并用作输入,以基于该列下80行中的Y / N运行某些操作?

以下是我想使用的语法,但我知道它不起作用。

    Dim groupcounter As Long 
    For groupcounter = 1 To 80 
        If Worksheets("Options").Range(rngX.Column, groupcounter + 1) = "Y" Then
            getNthRegion(ActiveSheet, groupcounter).Hidden = True 
        ElseIf Worksheets("Options").Range(rng.Column, groupcounter + 1) = "N" Then 
            getNthRegion(ActiveSheet, groupcounter).Hidden = False 
        End If 
     Next groupcounter

1 个答案:

答案 0 :(得分:0)

未经测试:

Dim rngX As Range, c As range

Set rngX = Worksheets("Options").Range("A1:J1").Find(Range("C1"), lookat:=xlPart)

If Not rngX Is Nothing Then
    For Each c in rnx.offset(1,0).Resize(80,1).cells
        c.entirerow.Hidden = (c.Value = "N")
    Next c
End If