Excel VBA根据特定答案隐藏/取消隐藏行
我正在尝试根据特定单元格值隐藏/取消隐藏行。到目前为止,我的代码有效,如下所示: 但是,我也尝试在yes-no行之间显示行。例如,第11-15行的开头如图所示。第15行有是或否答案。选择“是”后,我需要显示16-20。但到目前为止,我只能显示20列8是选择是/否,列11是偏移量,列12当前包含要跳到的数字。。。所以第15行第12列包含20。。。但我需要16-20岁。我如何解决这个问题?多谢各位Excel VBA根据特定答案隐藏/取消隐藏行,excel,vba,Excel,Vba,我正在尝试根据特定单元格值隐藏/取消隐藏行。到目前为止,我的代码有效,如下所示: 但是,我也尝试在yes-no行之间显示行。例如,第11-15行的开头如图所示。第15行有是或否答案。选择“是”后,我需要显示16-20。但到目前为止,我只能显示20列8是选择是/否,列11是偏移量,列12当前包含要跳到的数字。。。所以第15行第12列包含20。。。但我需要16-20岁。我如何解决这个问题?多谢各位 Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then
For Each cel In Target
Call Worksheet_Change(cel)
Next cel
End If
If Target.Column = 8 Then
If LCase(Target.Value) = LCase(Target.Offset(, 3)) Then
Cells(Target.Offset(, 4), 1).EntireRow.Hidden = False
Else
Cells(Target.Offset(, 4), 1).EntireRow.Hidden = True
End If: End If
End Sub
最简单的方法是使用循环。您要做的是隐藏循环中的每一行,例如,此循环将隐藏第1-3行
For i=1 to 3
Rows(i).EntireRow.Hidden = True
Next
如果我正确理解您的设置,则第8列包含“是/否”。第11列包含开始取消隐藏行的行偏移量。第12列说明停止取消隐藏行的位置
我将使用以下符号表示单元格地址行、列
回到您的示例中,如果15,8表示是,则取消隐藏第16,17,18,19,20行。这意味着15,11将包含1,因为到达第16行的偏移量是当前_行+1,其中当前行是15,单元格15,12包含20,因为它是最后一行要跳到。只需使用单元格15,11中的值作为循环的开始,使用单元格15,12中的值作为停止值
专用子工作表\u ChangeByVal目标作为范围
'定义了一些常量
常数=8
常量偏移量=11
常数iSKIP_至_COL=12
如果Target.Count>1,则
对于目标中的每个cel
调用工作表\u Changecel
下一个细胞
如果结束
ElseIf Target.Count=1,则
“我不知道这是怎么回事,所以我把它忘了
如果Target.Column=8,则
如果LCaseTarget.Value=LCaseTarget.Offset,则为3
CellsTarget.Offset,4,1.EntireRow.Hidden=False
其他的
CellsTarget.Offset,4,1.EntireRow.Hidden=True
如果结束
如果Target.Column=iYES\u NO\u COL,则
'获取当前行+偏移单元格中的值
我的开始=Target.Row+CellsTarget.Row,iOFFSET\u COL.Value
'将值从SKIP_到_列
my_stop=CellsTarget.Row,iSKIP_TO_COL.Value
'此时目标应仅为一个单元格,请查看
'包含“否”一词
如果StrCompTrimLCaseTarget.Value,no=0,则
'隐藏起始值和停止值之间的所有行
因为我=我的_开始我的陀螺
Rowsi.EntireRow.Hidden=True
下一个
如果StrCompTrimLCaseTarget.Value为是,则为0
'取消隐藏起始值和停止值之间的所有行
因为我=我的_开始我的陀螺
Rowsi.EntireRow.Hidden=False
下一个
如果结束
如果结束
端接头