【问题标题】:Hide/unhide rows with zero value cells or blanks across multiple sheets在多个工作表中隐藏/取消隐藏具有零值单元格或空白的行
【发布时间】:2021-06-26 06:06:12
【问题描述】:

范围:隐藏包含零值和/或空白单元格的行,并在填充相同的单元格(数字、文本;大多数单元格包含公式)后取消隐藏行。

所需的灵活性:能够将隐藏/取消隐藏应用于单个工作表以及整个工作表中的不同特定范围(无范围选择。) 一般:工作簿由多张工作表组成。具有零值的单元格放置在带有标题的列中,而空白位于同一列中但没有标题。

关于数据样本,A1:C12,Sheet2,工作簿“文件 R1”
关注的单元格是 C 列、C1:C12(数字和空白)。
从 A1 开始的行 – A1:C1 中的所有空白。
以 A2、A3、A4 开头的行 - A2:A4、B2:C4 中的文本 - 空白。
从 A5 开始的行 – A1:C1 中的所有空白。
A6:C12 – 表格,由函数引入的字母数字数据。
A6:C6 – 表头、文本。
C9 和 C12 包含单元格 = 0。

场景 A:C7,C8,C10,C11 - 数字,隐藏对应于 C9 和 C12 的行,因为最初单元格 = 0。如果 C9 和/或 C12 中的值 > 0,则取消隐藏。不要隐藏对应于空白的行C1:C5。 场景B:如果表(C6:C12)的C列中所有单元格都为零,则隐藏C1:C12对应的所有行。

最重要的是,如果能够在同一个工作簿中同时针对多个工作表运行上述场景,那就太好了。例如,Sheet2 和 Sheet3 包含与上述相同的数据集。

我遇到过一些使用代码的 VBA 解决方案。有没有办法通过改变VBA(和365 Office订阅)之外的单元格值来实现隐藏/取消隐藏的“自动化”,好吗? Excel 文件适用于具有非常基本技能的一组用户。

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    sub hide_unhide_rows() 
    
    Range("1:1").Rows.Hidden = True
    Range("1:1").Rows.Hidden = False
    
    Range("1:9").Rows.Hidden = True
    Range("1:9").Rows.Hidden = False
    
    End Sub
    

    您隐藏包含具有零值或空白的单元格的行并取消隐藏具有值的行,您用值填充空白。另见this answerthis answer

    Dim var1 As String
    Sheets("Sheet1").Select
    
    For LR1 = 1 To Range("A65536").End(xlUp).Row
    Cells(LR1, 1).Select
    If (ActiveCell.Value = "") Then
    var1 = Replace(ActiveCell.Address, "$", "")
    
    Range(var1).EntireRow.Hidden = True
    End If
    Next LR1
    

    希望对您有所帮助;请点赞。

    【讨论】:

    • 那么,使用VBA可以达到效果吗?我应该提供更多细节。 excel文件旨在由一组具有非常基本技术技能的用户使用。出于这个原因,我想避免使用 VBA。我宁愿找到使用函数的解决方案(但不是 365 Office 的那些,因为很多“凡人”,包括我自己,根本没有订阅。)
    【解决方案2】:

    所以基本上你在做以下事情:

    • 在单元格中的某处搜索值
    • 隐藏整行

    在 MS-Word 中,您可以使用搜索和替换来应用特定格式(例如将某个单词的所有实例转换为另一种字体),但是 Excel 中似乎不存在此功能,因此 VBA 将是路要走。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多