VBA-根据单元格是否包含特定文本隐藏行

问题描述 投票:0回答:2

希望扫描整列,看看产品(在单个单元格中)是否可能停产。如果单元格中包含“中止”一词,则情况如此。如果停止,我希望隐藏整行。有什么建议吗?

Sub HideRows()
    Dim c As Range
    For Each c In Range("B3:B2452")
        If InStr(1, c, "Discontinued") Or InStr(1, c, "discontinued") Then
            c.EntireRow.Hidden = True
        End If
        Next
End Sub
vba excel multiple-columns cells
2个回答
5
投票
Sub HideRows()

    Dim rCheck As Range
    Dim rHide As Range
    Dim rCheckCell As Range

    Set rCheck = ActiveWorkbook.ActiveSheet.Range("B3:B2452")
    rCheck.EntireRow.Hidden = False

    For Each rCheckCell In rCheck.Cells
        If InStr(1, rCheckCell, "Discontinued", vbTextCompare) > 0 Then
            If Not rHide Is Nothing Then Set rHide = Union(rHide, rCheckCell) Else Set rHide = rCheckCell
        End If
    Next rCheckCell

    If Not rHide Is Nothing Then rHide.EntireRow.Hidden = True

End Sub

-1
投票

谢谢@tigeravatar先生。经过这么多搜索,这是最简单、最完美的工作代码

© www.soinside.com 2019 - 2024. All rights reserved.