簡體   English   中英

基於另一個單元格值隱藏/取消隱藏行

[英]Hide/Unhide rows based on another cell value

我正在嘗試根據單元格值隱藏/取消隱藏單元格。 當工作表(“創建”)的單元格值等於“RCDO”時,它將隱藏工作表(“表格”)上的行22:35並取消隱藏行36:49,當值不等於“RCDO”時,則取消隱藏行22:35並隱藏行 36:49。 代碼不會自動運行,這意味着我必須單擊行的單元格才能運行,而不是在更改單元格值后立即運行代碼。

    Private Sub HideRow1()

Application.ScreenUpdating = False

If Sheets("Create").Range("C4").Value = "RCDO" Then
        Rows("22:35").EntireRow.Hidden = True
        Rows("36:49").EntireRow.Hidden = False

     ElseIf Sheets("Create").Range("C4").Value <> "RCDO" Then
        Rows("36:49").EntireRow.Hidden = True
        Rows("22:35").EntireRow.Hidden = False

        Application.ScreenUpdating = True
    End If


End Sub

在工作sheet("create")寫入以下代碼sheet("create")

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Me.Range("C4").Address Then Call HideRow1
End Sub


Private Sub HideRow1()

    Application.ScreenUpdating = False
    If UCase(Me.Range("C4").Value) = "RCDO" Then
        Me.Rows("22:35").EntireRow.Hidden = True
        Me.Rows("36:49").EntireRow.Hidden = False
    Else
        Me.Rows("36:49").EntireRow.Hidden = True
        Me.Rows("22:35").EntireRow.Hidden = False
    End If
    Application.ScreenUpdating = True

End Sub

將此代碼放入名為“創建”(不在模塊中)的工作表中,以便它根據您更改值的事件工作:

 Option Compare Text
  Private Sub Worksheet_Change(ByVal Target As Range)
    'Check sheet'name and activeCell = C4
    If ActiveSheet.Name <> "Create" Or Target.Address(0, 0) <> "C4" Then Exit Sub
            ToogleHidden ([C4].Value = "RCDO")
    End Sub

    Private Sub ToogleHidden(boo As Boolean)
    Application.ScreenUpdating = False
        Worksheets("Form").Rows("22:35").EntireRow.Hidden = boo
        Worksheets("Form").Rows("36:49").EntireRow.Hidden = Not (boo)
     Application.ScreenUpdating = True
    End Sub

暫無
暫無

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

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