Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 选中一行中的三个单元格,如果一个单元格有特定文本,则取消隐藏该行_Excel_Vba - Fatal编程技术网

Excel 选中一行中的三个单元格,如果一个单元格有特定文本,则取消隐藏该行

Excel 选中一行中的三个单元格,如果一个单元格有特定文本,则取消隐藏该行,excel,vba,Excel,Vba,我有一个电子表格,其中隐藏了第17-111行。数据添加到每行的三个单元格(P、Q和R列) 数据来自Userforms,用户可以从中选择三个选项按钮。根据选项,“通过”、“失败”或“不通过”的结果填充到P17-R111范围内的每个单元格中 我需要取消隐藏该行任何p、Q或R列单元格中“失败”的所有行。 e、 g.如果单元格R57为“失败”,单元格P66为“失败”,则需要取消隐藏行57和66 我尝试过搜索网络时发现的各种代码,但我得到的结果是,只有在p列有“失败”的情况下,行才被取消隐藏,而不是在p单

我有一个电子表格,其中隐藏了第17-111行。数据添加到每行的三个单元格(P、Q和R列)

数据来自Userforms,用户可以从中选择三个选项按钮。根据选项,“通过”、“失败”或“不通过”的结果填充到P17-R111范围内的每个单元格中

我需要取消隐藏该行任何p、Q或R列单元格中“失败”的所有行。
e、 g.如果单元格R57为“失败”,单元格P66为“失败”,则需要取消隐藏行57和66

我尝试过搜索网络时发现的各种代码,但我得到的结果是,只有在p列有“失败”的情况下,行才被取消隐藏,而不是在p单元格没有失败的情况下,而是在同一行中的其他单元格没有失败。
e、 g.如果单元格P57有一个“通过”,但单元格R57有一个失败,则该行保持隐藏

这是我最新的(也是更简单的)尝试:

Private子命令按钮1\u单击()
暗淡的cel As范围
变暗范围作为范围
对于工作表(“表1”)中的每个cel。范围(“P17:R111”)
如果cel=“失败”,则
如果RangeToUnhide不算什么
设置RangeToUnhide=cel
其他的
设置RangeToUnhide=Union(RangeToUnhide,cel)
如果结束
如果结束
下一个
RangeToUnhide.EntireRow.Hidden=False
端接头
我尝试将范围更改为(“P17:P111”),然后为Q和R中的范围再运行两个代码副本。我得到的是取消隐藏p单元格为“失败”的行,Q和R单元格将被忽略。

使用此代码

Sub Hide()
Dim cel As Range
Dim RangeToUnhide As Range

For Each cel In Worksheets("Sheet1").Range("A7:B11")
'Change Name of Sheet & Range as per your use
If cel = "A" Then
'Change Value as per your use
If RangeToUnhide Is Nothing Then
Set RangeToUnhide = cel
Else
Set RangeToUnhide = Union(RangeToUnhide, cel)
End If
End If
Next
RangeToUnhide.EntireRow.Hidden = True


End Sub

以上代码用于隐藏,用于取消隐藏

Sub Unhide()
Dim cel As Range
Dim RangeToUnhide As Range
For Each cel In Worksheets("Sheet1").Range("A7:B11")
'Change Name of Sheet & Range as per your use
If cel = "A" Then
'Change Value as per your use
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

我无法复制。你确定单元格中包含“失败”吗“没有任何尾随空格,而且它总是大写的F?”?另外,请养成缩进代码的习惯,使其更具可读性。新手错误。。。是的,创建主电子表格的人在公式前面有一个空白单元格,我没有注意到。!!!非常感谢您的帮助。您应该添加一个演示问题的答案。感谢您的回答,但代码不起作用;它实际上隐藏了行。然后将工作表(“Sheet1”)中每个cel的True更改为FalseSub UnHide()Dim cel As Range Dim Range Tounhide As Range。Range(“A7:B11”)'根据您的使用更改工作表和范围的名称,如果cel=“A”然后“如果RangeToUnhide为空,则根据您的使用更改值,然后设置RangeToUnhide=cel,否则设置RangeToUnhide=Union(RangeToUnhide,cel)如果End If End If Next RangeToUnhide.EntireRow.Hidden=False End Sub}”