Excel 根据单元格中的数值取消隐藏行

Excel 根据单元格中的数值取消隐藏行,excel,vba,Excel,Vba,我正在尝试创建工作表\u Change()事件以根据一个单元格的数值取消隐藏行 我有一张桌子,B13:B513。我想取消隐藏的行数等于C7中的值。例如,如果C7=10,则B13:B22将取消隐藏,其余部分仍将隐藏 我见过几种做类似事情的方法,但每个选项都使用“case”。就我而言,我有500个选择。我相信有一种更有效的方法可以做到这一点 我正在使用Excel 2010 提前谢谢 Daniel只有当用户更改单元格“C7”中的值时,工作表_Change()事件中的以下代码才会运行,您可以在代码中轻松

我正在尝试创建
工作表\u Change()
事件以根据一个单元格的数值取消隐藏行

我有一张桌子,B13:B513。我想取消隐藏的行数等于C7中的值。例如,如果C7=10,则B13:B22将取消隐藏,其余部分仍将隐藏

我见过几种做类似事情的方法,但每个选项都使用“case”。就我而言,我有500个选择。我相信有一种更有效的方法可以做到这一点

我正在使用Excel 2010

提前谢谢


Daniel

只有当用户更改单元格“C7”中的值时,
工作表_Change()
事件中的以下代码才会运行,您可以在代码中轻松修改它(从哪一行开始)

代码将取消隐藏从第13行开始指定的行数(根据范围B13:B513


只有当用户更改单元格“C7”中的值时,才会运行
工作表\u Change()
事件中的以下代码,您可以在代码中轻松修改它(从哪一行开始)

代码将取消隐藏从第13行开始指定的行数(根据范围B13:B513


C7是否始终是要隐藏行数的单元格?隐藏行的范围是否从第13行(“B13”)开始?您需要检查C7中的值
isnumeric
,然后
resize
将B13范围调整为C7中的值,并将
entirerow
s
hidden
属性更改为False。@ongcaps您在下面的mu asnwer中测试过代码了吗?C7是否总是要隐藏行数的单元格?隐藏行的范围是否从第13行(“B13”)开始?您需要检查C7中的值
isnumeric
,然后
resize
range B13到C7中的值,并将
entirerow
s
hidden
属性更改为False。@ongcaps是否在下面的mu asnwer中测试了代码?我将使用
range(“B13”)。resize(Target.Value).EntireRow.Hidden=False
。但是个人偏好。@DarrenBartrup Cook如果我的答案在改善答案,请随意更新。我不会说它在改善-只是获得相同结果的另一种方式。我会使用
范围(“B13”).Resize(Target.Value).EntireRow.Hidden=False
。但是个人偏好。@DarrenBartrup Cook如果我的答案有改进,请随时更新。我不会说它有改进,这只是获得相同结果的另一种方式。
Private Sub Worksheet_Change(ByVal Target As Range)

Dim WatchRange                  As Range
Dim IntersectRange              As Range
Dim Numof_UnhideRows            As Long
Dim UnhideRowStart              As Long


' if you want to unhide the rows in Range(B13:B513) only when someone canges the vlues in C7
Set WatchRange = Range("C7")

' starting unhiding number of rows starting for row 13
UnhideRowStart = 13

Set IntersectRange = Intersect(Target, WatchRange)

If Not IntersectRange Is Nothing Then
    If IsNumeric(Target.Value) Then
        Numof_UnhideRows = Target.Value
        Rows(UnhideRowStart & ":" & UnhideRowStart + Numof_UnhideRows - 1).EntireRow.Hidden = False

        MsgBox "Unhide a total of " & Numof_UnhideRows & " rows"
    Else
        MsgBox "Cell C7 doesn't contain a Numeric Value", vbCritical
    End If
Else
   'Do Nothing Spectacular

End If

End Sub