使用VBA取消隐藏Excel中的行

我试图在Excel中使用下面的代码,但它不工作。 单元格AE25是指使用数据validation从列表中提取数字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.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”类模块。 HTH

 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 

在这里输入图像说明