繁体   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