Hide/Unhide 行

Hide/Unhide Rows

我目前正在使用三个 sheet。第一个包括所有列表和数据。在称为输入的第二个中,您可以在列表中的不同变量之间进行选择。 根据您在输入 sheet 中选择的内容,在输出 sheet 中显示内容。

例如,我在 "Input" Sheet 中有一个列表,您可以在其中选择底层证券的数量。 选择例如2时,一切正常工作,在sheet "output"中,行被隐藏了。 例如从 2 切换到 13 它将不再起作用,它仍然显示数字 2 的内容。

你知道我的错误在哪里吗?

我正在使用以下代码:

If Target.Address = "$F" Then 'Underlying numbers
If Target.Value = "1" Then
Sheets("Output").Rows("66:84").Hidden = True
Sheets("Output").Rows("183:201").Hidden = True
Sheets("Output").Rows("226:244").Hidden = True
Else
If Target.Value = "2" Then
Sheets("Output").Rows("67:84").Hidden = True
Sheets("Output").Rows("184:201").Hidden = True
Sheets("Output").Rows("227:244").Hidden = True
Else
If Target.Value = "3" Then
Sheets("Output").Rows("68:84").Hidden = True
Sheets("Output").Rows("185:201").Hidden = True
Sheets("Output").Rows("228:244").Hidden = True
Else
If Target.Value = "4" Then
Sheets("Output").Rows("69:84").Hidden = True
Sheets("Output").Rows("186:201").Hidden = True
Sheets("Output").Rows("229:244").Hidden = True
Else
If Target.Value = "5" Then
Sheets("Output").Rows("70:84").Hidden = True
Sheets("Output").Rows("187:201").Hidden = True
Sheets("Output").Rows("230:244").Hidden = True
Else
If Target.Value = "6" Then
Sheets("Output").Rows("71:84").Hidden = True
Sheets("Output").Rows("188:201").Hidden = True
Sheets("Output").Rows("231:244").Hidden = True
Else
If Target.Value = "7" Then
Sheets("Output").Rows("72:84").Hidden = True
Sheets("Output").Rows("189:201").Hidden = True
Sheets("Output").Rows("232:244").Hidden = True
Else
If Target.Value = "8" Then
Sheets("Output").Rows("73:84").Hidden = True
Sheets("Output").Rows("190:201").Hidden = True
Sheets("Output").Rows("233:244").Hidden = True
Else
If Target.Value = "9" Then
Sheets("Output").Rows("74:84").Hidden = True
Sheets("Output").Rows("191:201").Hidden = True
Sheets("Output").Rows("234:244").Hidden = True
Else
If Target.Value = "10" Then
Sheets("Output").Rows("75:84").Hidden = True
Sheets("Output").Rows("192:201").Hidden = True
Sheets("Output").Rows("235:244").Hidden = True
Else
If Target.Value = "11" Then
Sheets("Output").Rows("76:84").Hidden = True
Sheets("Output").Rows("193:201").Hidden = True
Sheets("Output").Rows("236:244").Hidden = True
Else
If Target.Value = "12" Then
Sheets("Output").Rows("77:84").Hidden = True
Sheets("Output").Rows("194:201").Hidden = True
Sheets("Output").Rows("237:244").Hidden = True
Else
If Target.Value = "13" Then
Sheets("Output").Rows("78:84").Hidden = True
Sheets("Output").Rows("195:201").Hidden = True
Sheets("Output").Rows("238:244").Hidden = True
Else
If Target.Value = "14" Then
Sheets("Output").Rows("79:84").Hidden = True
Sheets("Output").Rows("196:201").Hidden = True
Sheets("Output").Rows("239:244").Hidden = True
Else
If Target.Value = "15" Then
Sheets("Output").Rows("80:84").Hidden = True
Sheets("Output").Rows("197:201").Hidden = True
Sheets("Output").Rows("240:244").Hidden = True
Else
If Target.Value = "16" Then
Sheets("Output").Rows("81:84").Hidden = True
Sheets("Output").Rows("198:201").Hidden = True
Sheets("Output").Rows("241:244").Hidden = True
Else
If Target.Value = "17" Then
Sheets("Output").Rows("82:84").Hidden = True
Sheets("Output").Rows("199:201").Hidden = True
Sheets("Output").Rows("242:244").Hidden = True
Else
If Target.Value = "18" Then
Sheets("Output").Rows("83:84").Hidden = True
Sheets("Output").Rows("200:201").Hidden = True
Sheets("Output").Rows("243:244").Hidden = True
Else
If Target.Value = "19" Then
Sheets("Output").Rows("84").Hidden = True
Sheets("Output").Rows("201").Hidden = True
Sheets("Output").Rows("244").Hidden = True
Else
Sheets("Output").Rows("66:84").Hidden = False
Sheets("Output").Rows("183:201").Hidden = False
Sheets("Output").Rows("226:244").Hidden = False
Sheets("Output").Rows("67:84").Hidden = False
Sheets("Output").Rows("184:201").Hidden = False
Sheets("Output").Rows("227:244").Hidden = False
Sheets("Output").Rows("68:84").Hidden = False
Sheets("Output").Rows("185:201").Hidden = False
Sheets("Output").Rows("228:244").Hidden = False
Sheets("Output").Rows("69:84").Hidden = False
Sheets("Output").Rows("186:201").Hidden = False
Sheets("Output").Rows("229:244").Hidden = False
Sheets("Output").Rows("70:84").Hidden = False
Sheets("Output").Rows("187:201").Hidden = False
Sheets("Output").Rows("230:244").Hidden = False
Sheets("Output").Rows("71:84").Hidden = False
Sheets("Output").Rows("188:201").Hidden = False    
Sheets("Output").Rows("231:244").Hidden = False
Sheets("Output").Rows("72:84").Hidden = False
Sheets("Output").Rows("189:201").Hidden = False
Sheets("Output").Rows("232:244").Hidden = False
Sheets("Output").Rows("73:84").Hidden = False
Sheets("Output").Rows("190:201").Hidden = False
Sheets("Output").Rows("233:244").Hidden = False
Sheets("Output").Rows("74:84").Hidden = False
Sheets("Output").Rows("191:201").Hidden = False
Sheets("Output").Rows("234:244").Hidden = False
Sheets("Output").Rows("75:84").Hidden = False
Sheets("Output").Rows("192:201").Hidden = False
Sheets("Output").Rows("235:244").Hidden = False
Sheets("Output").Rows("76:84").Hidden = False
Sheets("Output").Rows("193:201").Hidden = False
Sheets("Output").Rows("236:244").Hidden = False
Sheets("Output").Rows("77:84").Hidden = False
Sheets("Output").Rows("194:201").Hidden = False
Sheets("Output").Rows("237:244").Hidden = False
Sheets("Output").Rows("78:84").Hidden = False
Sheets("Output").Rows("195:201").Hidden = False
Sheets("Output").Rows("238:244").Hidden = False
Sheets("Output").Rows("79:84").Hidden = False
Sheets("Output").Rows("196:201").Hidden = False
Sheets("Output").Rows("239:244").Hidden = False
Sheets("Output").Rows("80:84").Hidden = False
Sheets("Output").Rows("197:201").Hidden = False
Sheets("Output").Rows("240:244").Hidden = False
Sheets("Output").Rows("81:84").Hidden = False
Sheets("Output").Rows("198:201").Hidden = False
Sheets("Output").Rows("241:244").Hidden = False
Sheets("Output").Rows("82:84").Hidden = False
Sheets("Output").Rows("199:201").Hidden = False
Sheets("Output").Rows("242:244").Hidden = False
Sheets("Output").Rows("83:84").Hidden = False
Sheets("Output").Rows("200:201").Hidden = False
Sheets("Output").Rows("243:244").Hidden = False
Sheets("Output").Rows("84").Hidden = False
Sheets("Output").Rows("201").Hidden = False
Sheets("Output").Rows("244").Hidden = False
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If

使用 Select Case 的简短代码示例。如果此代码位于 "Output" sheet 内的 Worksheet_Change 事件内,则无需使用 With Sheets("Output") 行。

With Sheets("Output")

    ' ****** Edit 1 ******
    ' first thing" unhide all hidden rows from previous code run
    .Rows("66:84").Hidden = False
    .Rows("183:201").Hidden = False
    .Rows("226:244").Hidden = False

    Select Case Target.Value
        Case "1"
            .Rows("66:84").Hidden = True
            .Rows("183:201").Hidden = True
            .Rows("226:244").Hidden = True

        Case "2"
            .Rows("67:84").Hidden = True
            .Rows("184:201").Hidden = True
            .Rows("227:244").Hidden = True

        ' rest of your cases 3 thourgh 19.....

        Case Else
            .Rows("66:84").Hidden = False
            .Rows("183:201").Hidden = False
            .Rows("226:244").Hidden = False
            ' the rest of your line here are redundant >> can be removed

    End Select

End With

或者,因为看起来这就是您正在做的...

If Target.Address = "$F" Then 'Underlying numbers
  Sheets("Output").Rows("66:84").Hidden = False
  Sheets("Output").Rows("183:201").Hidden = False
  Sheets("Output").Rows("226:244").Hidden = False
  If Target >= 1 And Target <= 19 Then
    Sheets("Output").Rows(65 + Target & ":84").Hidden = True
    Sheets("Output").Rows(182 + Target & ":201").Hidden = True
    Sheets("Output").Rows(225 + Target & ":244").Hidden = True
  End If
End If

根据其他评论....这将每次重置隐藏的行,然后根据需要隐藏。