【发布时间】:2020-12-08 17:49:17
【问题描述】:
我有一个隐藏第 17-111 行的电子表格。数据将添加到每行的三个单元格(P、Q 和 R 列)。
数据来自用户表单,用户可以在其中选择三个选项按钮。根据选项,“通过”、“失败”或“NA”的结果将填充到 P17-R111 范围内的每个单元格中。
我需要取消隐藏“失败”在该行的任何 P、Q 或 R 列单元格中的所有行。
例如如果单元格 R57 为“失败”且单元格 P66 为“失败”,则需要取消隐藏第 57 行和第 66 行。
我尝试了在网上找到的代码变体,但我得到的结果是,只有在 P 列有“失败”的情况下,行才被隐藏,而不是 P 单元格没有失败,但同一行中的其他单元格没有失败。
例如如果单元格 P57 为“通过”,但单元格 R57 为失败,则该行保持隐藏状态。
这是我最近的(也是更简单的)尝试:
Private Sub CommandButton1_Click()
Dim cel As Range
Dim RangeToUnhide As Range
For Each cel In Worksheets("Sheet1").Range("P17:R111")
If cel = "Fail" Then
If RangeToUnhide Is Nothing Then
Set RangeToUnhide = cel
Else
Set RangeToUnhide = Union(RangeToUnhide, cel)
End If
End If
Next
RangeToUnhide.EntireRow.Hidden = False
End Sub
我尝试将范围更改为 ("P17:P111"),然后为 Q 和 R 中的范围运行代码的另外两个副本。我得到的只是取消隐藏 P 单元格为“失败”的行, Q 和 R 单元格被忽略。
【问题讨论】:
-
我无法复制它。您确定单元格包含“失败”且没有任何尾随空格并且始终为大写 F?另外,请养成缩进代码的习惯,以使其更具可读性。
-
Rookie 错误...是的,创建主电子表格的人在公式中失败前面有一个空白单元格,我没有注意到。!!!非常感谢您的帮助。