主工作表上的单元格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
答案 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