使用VBA在Excel中取消隐藏行
我试图在Excel中使用以下代码,但它不起作用。单元格AE25是指使用数据验证从列表中提取数字1-8的单元格使用VBA在Excel中取消隐藏行,excel,vba,Excel,Vba,我试图在Excel中使用以下代码,但它不起作用。单元格AE25是指使用数据验证从列表中提取数字1-8的单元格 Select Case Range("AE25").Value Case 1 Range("A26:A28").EntireRow.Hidden = False Case 2 Range("A26:A29").EntireRow.Hidden = False Case 3 Range("A26:A30").EntireRow.Hidd
Select Case Range("AE25").Value
Case 1
Range("A26:A28").EntireRow.Hidden = False
Case 2
Range("A26:A29").EntireRow.Hidden = False
Case 3
Range("A26:A30").EntireRow.Hidden = False
Case 4
Range("A26:A31").EntireRow.Hidden = False
Case 5
Range("A26:A32").EntireRow.Hidden = False
Case 6
Range("A26:A33").EntireRow.Hidden = False
Case 7
Range("A26:A34").EntireRow.Hidden = False
Case 8
Range("A26:A35").EntireRow.Hidden = False
End Select
任何帮助都将不胜感激。将此代码粘贴到数据所在的工作表模块中,例如,您的数据位于“Sheet1”中,然后将其粘贴到“Sheet1”类模块中。嗯
Private Sub Worksheet_Change(ByVal Target As Range)
' AE25
If (Not Intersect(Target, Range("AE25")) Is Nothing) Then
Select Case Target.Value
Case 1
Range("A26:A28").EntireRow.Hidden = False
Case 2
Range("A26:A29").EntireRow.Hidden = False
Case 3
Range("A26:A30").EntireRow.Hidden = False
Case 4
Range("A26:A31").EntireRow.Hidden = False
Case 5
Range("A26:A32").EntireRow.Hidden = False
Case 6
Range("A26:A33").EntireRow.Hidden = False
Case 7
Range("A26:A34").EntireRow.Hidden = False
Case 8
Range("A26:A35").EntireRow.Hidden = False
Case Else
' hide all rows 26-35 if value is not equal to 1-8
Range("A26:A35").EntireRow.Hidden = True
End Select
End If
' Z40
If (Not Intersect(Target, Range("Z40")) Is Nothing) Then
Select Case Target.Value
Case "PowerPoint", "Verbal"
Range("A41").EntireRow.Hidden = False
Case "None"
Range("A41").EntireRow.Hidden = True
Case Else
End Select
End If
End Sub
有错误吗?哪一行,哪一行…没有错误,只是没有运行-我是VBA新手,所以有可能我做了一些根本性的错误。用F8键运行代码,检查编译过程。这应该会有帮助…这个代码应该粘贴到哪里?我是否只需右键单击工作表,然后单击“查看代码”并将其放入其中?这取决于您想要启动它的方式。进行了更改以使范围更改检查更加可靠-如最初提供的,如果AE25以某种方式与其他单元格进行了更改(我不太清楚),则
.Address
属性将与使用的字符串不匹配。这非常有效。我还为“重新隐藏”行添加了一些额外的行,以防AE25被选为高数字,然后更新为较低的数字。如果AE25不等于1-8,我将如何重新隐藏所有第26-35行?此外,如果我在输入单元格中使用文本,又该如何处理?我有另一行要隐藏,这取决于Z40,如果文本是“PowerPoint”或“口头”,它应该取消隐藏第41行。如果文本为“无”,则应隐藏第41行。第41排将开始隐藏。@DanielDusek太好了!最后一件事是,如果删除AE25或Z40中的值,则会出现运行时错误,我希望它隐藏26:35或41行。你能为这个添加一行吗?@KirtjE不能重现这个错误,你能更具体一点吗?在哪一行上,它到底是什么?在错误弹出之前,你在做什么?