繁体   English   中英

在多个工作表中隐藏/取消隐藏具有零值单元格或空白的行

[英]Hide/unhide rows with zero value cells or blanks across multiple sheets

Scope:隐藏包含具有零值和/或空白的单元格的行并取消隐藏行,一旦填充相同的单元格(数字,文本;大多数单元格包含公式)。

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

关于数据样本,A1:C12,Sheet2,工作簿“文件 R1”
关注的单元格是 C、C1:C12 列(数字和空白)。
从 A1 开始的行 – A1:C1 中的所有空白。
行起始 A2、A3、A4 - A2:A4、B2:C4 中的文本 - 空白。
从 A5 开始的行 – A1:C1 中的所有空白。
A6:C12 – 表格,由函数引入的字母数字数据。
A6:C6 – 表格 header,文本。
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 文件适用于一组具有非常基本技能的用户。

样本

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

您隐藏包含具有零值或空白的单元格的行,并取消隐藏具有值的行,您用值填充空白。 另请参阅此答案此答案

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

希望能帮助到你; 请投票。

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

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

In MS-Word, you have the possibility to use search and replace for applying specific formatting (like put all instances of a certain word into another font), however this feature seems not to exist in Excel, so VBA will be the way to go.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM