Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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/2/node.js/41.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,我希望能够在特定列中搜索特定值,然后在找到该值时隐藏行。到目前为止,我正在处理以下问题,并想知道是否需要搜索目标范围而不是目标列: Private子工作表\u更改(ByVal目标作为范围) 如果Target.Column=“2”,则“我要搜索B列 '我要搜索值2 如果Target.Value=“2”,则 ActiveSheet.Rows(10).EntireRow.Hidden=False'如果找到值2,我想显示隐藏的第10行 ElseIf Target.Value为2,如果没有值2,则为' A

我希望能够在特定列中搜索特定值,然后在找到该值时隐藏行。到目前为止,我正在处理以下问题,并想知道是否需要搜索目标范围而不是目标列:

Private子工作表\u更改(ByVal目标作为范围)
如果Target.Column=“2”,则“我要搜索B列
'我要搜索值2
如果Target.Value=“2”,则
ActiveSheet.Rows(10).EntireRow.Hidden=False'如果找到值2,我想显示隐藏的第10行
ElseIf Target.Value为2,如果没有值2,则为'
ActiveSheet.Rows(10).EntireRow.Hidden=True“保持第10行隐藏”
如果结束
如果结束
端接头

一般来说,您可以使用兴趣范围et和
目标的交点来查看是否有任何感兴趣的单元格发生了更改

其他改进:

  • ActiveSheet
    引用活动工作表,该工作表可能是也可能不是包含代码的工作表。在工作表中,代码隐藏模块
    Me
    指的是该工作表
  • 数字和看起来像数字的字符串不是一回事。在某些情况下,Excel可能会在幕后进行am隐式转换,但并不总是这样
这是你的代码,重构的

Private子工作表\u更改(ByVal目标作为范围)
将感兴趣的范围变暗为范围
Dim TargetRangeOfInterest作为范围
Dim cl As范围
将搜索值作为变量
'我要搜索值2
“~~~您可能要搜索数字2,而不是字符串“2”
搜索值=2

Set RangeOfInterest=Me。范围(“B1:B10”)“
=“2”
2
不一致:选择一个。但如果Target.Column=2,则必须使用
。忽略上一行,代码将根据更改的值(
2
或否)隐藏或取消隐藏第10行。类型不匹配错误正在等待发生。您能否更详细地解释一下您希望发生什么(目标范围?例如,如果目标中的任何单元格为2,则隐藏其行,,。更多详细信息)?这真是太棒了。有没有办法为多个值添加多个条件?例如,如果我想添加更多可搜索的值,并显示和隐藏相应的不同行?如果我有一个12个单元格的范围,有12个不同的值选项(1-12),我能让它搜索该范围,并让它查找2、5和9,并为每个唯一的值显示不同的行吗?我认为这最好作为一个新的Q