Sub Group()
Dim arrList As Variant
Dim rng As Excel.Range
Dim rCell As Range
Dim N As Long
Set rng = Range(ActiveCell, ActiveCell.End(xlDown)).Select
arrList = Array("TP001P*")
For Each rCell In rng.Cells
For N = LBound(arrList) To UBound(arrList)
If VBA.InStr(1, rCell.Value, arrList(N), vbTextCompare) > 0 Then
rCell.EntireRow.Hidden = True
Exit For
End If
Next 'N
Next 'rCell
End Sub
1条答案
按热度按时间lmvvr0a81#
使用Like函数过滤“by prefix”。然后通过将所有的发现添加到一个范围中,将所有的行隐藏在一起
如果需要相反的结果,请设置一个“不”,如下所示:
由于我似乎不明白你需要什么,我将用一个更通用的解决方案来补充我的答案,以隐藏-显示行或列,根据需要用OR连接尽可能多的条件。x1c 0d1x将此代码放入模块(不是表单模块):
在Sheet模块中调用hide_Or_Show。在我的示例中,我通过Worksheet_Change调用它,在那里我检查两个条件中的任何一个是否发生了变化,如果确实发生了变化,我就调用它。