Excel 隐藏除匹配值之外的所有行

Excel 隐藏除匹配值之外的所有行,excel,vba,Excel,Vba,我正在使用excel中跨越B9:AJ1108的一些数据,因此有多行和多列。我希望隐藏所有行,除了列B中的值与单元格C5中的数字匹配的行。 我试过多次,只能把所有东西都隐藏起来,但问题是取消隐藏。我知道如何隐藏所有和如何取消隐藏所有。我需要的帮助是如何隐藏所有内容,然后在某些内容与C5中的值匹配时取消隐藏 迄今为止的代码: Private Sub CommandButton2_Click() Worksheets("Employee information").Range(&

我正在使用excel中跨越B9:AJ1108的一些数据,因此有多行和多列。我希望隐藏所有行,除了列B中的值与单元格C5中的数字匹配的行。 我试过多次,只能把所有东西都隐藏起来,但问题是取消隐藏。我知道如何隐藏所有和如何取消隐藏所有。我需要的帮助是如何隐藏所有内容,然后在某些内容与C5中的值匹配时取消隐藏

迄今为止的代码:

Private Sub CommandButton2_Click()

Worksheets("Employee information").Range("B9:B1108").Rows.Hidden = False

End Sub

Private Sub CommandButton1_Click()

Worksheets("Employee information").Range("B9:B1108").Rows.Hidden = True
'Need to put in the argument to search for C5 value

End Sub

我也希望这是按钮控制的,但我不知道这是在工作表中创建模块还是仅仅编码?

要取消隐藏行,可以使用“rows.EntireRow.Hidden=False” 如果要使用按钮执行宏,请创建一个按钮,当您单击该按钮时,excel将询问您要获取哪个宏

value= Worksheets("Employee information").cells(5,3).value
这将为您提供单元格C5的值,现在您需要遍历行并查找该值。

隐藏列中不包含条件的行
Private子命令按钮1\u单击()
带工作表(“员工信息”)
'定义标准(限制为数字)。
作为变量的Dim标准
标准=.范围(“C5”).值
如果不是数字(标准),则
出口接头
如果结束
'定义标准范围。
变暗rng As范围
设置rng=.Range(“B9:B1108”)
以
'声明其他变量。
变暗hRng为范围“隐藏范围”
Dim cel As Range“当前单元格(在源范围内)
作为变量的Dim CurVal当前值(源范围内的当前单元格)
'创建所有单元格范围的并集(隐藏范围)
'不包含条件。
对于rng.单元格中的每个单元格
'评估当前值。
曲线=单元值
如果是数字(曲线),则
如果CurVal=标准,则
找到GoTo NextCell的匹配项:不执行任何操作。
如果结束
如果结束
'未找到匹配项:将当前单元格添加到隐藏区域。
如果不是,那么hRng什么都不是
设置hRng=接头(hRng,cel)
其他的
设置hRng=cel
如果结束
NextCell:
下一个细胞
'隐藏隐藏范围的行。
如果不是,那么hRng什么都不是
hRng.Rows.Hidden=True
如果结束
端接头

为什么不直接使用过滤器呢?因为需要使用宏。您能分享到目前为止的代码吗?隐藏所有行的那一个?您可以使用宏中的过滤器来实现这一点。可以将宏指定给筛选和取消筛选数据的按钮。但请添加您迄今为止尝试过的内容。到目前为止,我已经用代码进行了更新(非常基本,因为我以前没有使用VBA,我会亲自使用过滤器),谢谢,我可以做到这一点并隐藏所有内容,关键是某种查找/匹配,可以自动取消隐藏与toI关联的单行。我需要帮助创建VBA,查看单元格C5的输入,在数据范围中搜索它,然后取消隐藏包含该输入的单行。您可以取消隐藏所有行。我不想取消隐藏所有行。我想根据输入到单元格C5中的值取消隐藏*一行。非常感谢VBASIC208!这非常有效。就我的理解而言(作为非VBA,但我使用Java编写代码),我希望您能够回答几个问题:1)将其定义为“变量”,这是否告诉Excel它可能是数字或文本?2)是否对于每个cel“部分,它们是否与“循环”的标准编码一样?可以包含任何对象,甚至一个对象(在这种情况下不可能)。我避免使用字符串和最重要的错误值,因为它们会导致程序失败。对于…每个…下一个用于循环集合。
Range
是一个单元格
Ranges
的集合。