【问题标题】:Repetative task for each sheet, unhide and hide base on cell value每个工作表的重复任务,根据单元格值取消隐藏和隐藏
【发布时间】:2019-03-24 21:59:00
【问题描述】:

我有这个当前的代码工作,但是我想对工作表中的很多行和工作簿中的其他工作表重复相同的任务。

我想重复的任务是根据是/否下拉菜单取消隐藏和隐藏行。我知道可以在模块中创建代码并在每张表中调用它。将不胜感激。

谢谢!!

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C6")) Is Nothing Then Exit Sub
    If Target = "Yes" Then
        Rows("7:7").Hidden = False
    ElseIf Target = "No" Then
        Rows("7:7").Hidden = True
    End If
End Sub

【问题讨论】:

  • Workbook.SheetChange Event 将处理任何工作表中的更改。除了 7 之外,还有哪些其他行是相关的?
  • 如果 9 是,隐藏 10.. 如果 12 是,隐藏 13... 等直到 42。
  • 如果 9 是,隐藏 10,如果 9 不是 ..?
  • yes/no 检查是否可以使用单个单元格,或者它们必须每行一个才能隐藏/取消隐藏?
  • 不幸的是,每行一个。它就像一份工作清单。 :)

标签: excel vba


【解决方案1】:

可能是这样的,使用Workbook.SheetChange event。将此代码添加到ThisWorkbook 代码模块。它假定除了您的下拉列表之外没有其他单元格说“是”或“否”。如果不是这种情况,它可以很容易地修改。如果需要,也可以将其修改为仅处理某些工作表并排除其他工作表。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    Select Case Target.Value
        Case "Yes"
            Target.Offset(1).EntireRow.Hidden = True
        Case "No"
            Target.Offset(1).EntireRow.Hidden = False
    End Select
End Sub

正如answer 到您之前的@​​987654323@ 中所述,您可以使用LCase 使此不区分大小写:

Select Case LCase(Target.Value)
    Case "yes"
        ....
    Case "no"
        ....
End Select

编辑

修改为根据名称排除某些工作表:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub

    Select Case Sh.Name
        Case "Sheet2", "Sheet4" ' change to the names of the sheets to exclude
            Exit Sub
    End Select

    If VarType(Target.Value) = vbString Then
        Select Case LCase(Target.Value)
            Case "yes"
                Target.Offset(1).EntireRow.Hidden = True
            Case "no"
                Target.Offset(1).EntireRow.Hidden = False
        End Select
    End If
End Sub

【讨论】:

  • 这行得通!如何排除某些工作表或单元格?谢谢!!
  • 查看编辑以了解如何排除工作表。您如何确定要排除哪些细胞?例如,基于它们所在的列和/或行?
猜你喜欢
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 2022-08-07
相关资源
最近更新 更多