簡體   English   中英

如何根據單元格值隱藏行?

[英]How to hide rows based on cell value?

我試圖讓單元格 A21 包含 0-10 之間的整數值,其中 0 表示 22-31 之間沒有行,1 表示第 22 行,2 表示 22 和 23,3 表示 22、23 和 24 等。

Private Sub Worksheet_Calculate()
Dim GenRequire As Integer
GenRequire = Range("A21").Value

Rows("22:31").EntireRow.Hidden = True
Select Case GenRequire
    Case Is = 0: Rows("22:31").EntireRow.Hidden = True 'No Rows shown
    Case Is = 1: Rows("22:22").EntireRow.Hidden = False '1st Row shown
    Case Is = 2: Rows("22:23").EntireRow.Hidden = False '1-2 rows shown
    Case Is = 3: Rows("22:24").EntireRow.Hidden = False '1-3 rows shown
    Case Is = 4: Rows("22:25").EntireRow.Hidden = False '1-4 rows shown
    Case Is = 5: Rows("22:26").EntireRow.Hidden = False '1-5 rows shown
    Case Is = 6: Rows("22:27").EntireRow.Hidden = False '1-6 rows shown
    Case Is = 7: Rows("22:28").EntireRow.Hidden = False '1-7 rows shown
    Case Is = 8: Rows("22:29").EntireRow.Hidden = False '1-8 rows shown
    Case Is = 9: Rows("22:30").EntireRow.Hidden = False '1-9 rows shown
    Case Is = 10: Rows("22:31").EntireRow.Hidden = False '1-10 rows shown
End Select
End Sub

我在Case Is = 10:上遇到錯誤,

運行時錯誤 1004:、應用程序定義或對象定義錯誤。

我的 Excel 版本有 Office 365。

我會做一些簡化:

Private Sub Worksheet_Calculate()

    Dim r
    r = Range("A21").Value
    If Not IsNumeric(r) Then Exit Sub
    r = Round(r, 0)
    With Rows(22)
        If r >= 1 And r < 10 Then
            Range(.Offset(0), .Offset(r - 1)).Hidden = False
            Range(.Offset(r), .Offset(9)).Hidden = True
        Else
            Range(.Offset(0), .Offset(9)).Hidden = r <> 10
        End If
    End With

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM