给出多个范围,如果满足多个条件,则隐藏行

问题描述 投票:1回答:1

我正在尝试在这种情况下隐藏行:

#given some ranges within column B and C 
#for each row within the ranges 
#if the related cells in column B and C both have value equal to 0 
#then hide the specific row

这是我正在使用的代码,但是我正在努力实现两个单元格都必须具有value = 0的if部分

Sub HideRows()

Dim r0 As Range, r1 As Range, r2 As Range, MultiRange As Range, r As Range

Set r0 = Sheets("Sheet1").Range("B1:C6")
Set r1 = Sheets("Sheet1").Range("B8:C8")
Set r2 = Sheets("Sheet1").Range("B10:C11")
Set MultiRange = Union(r0, r1, r2)

For Each r In MultiRange
    r.EntireRow.Hidden = (r.Value = 0)
Next r

End Sub
excel vba
1个回答
3
投票

您很近。实际上,您已经解决了较难的部分(联合范围)。设置循环以在联合范围内而不是默认的rows]中通过cells

Sub HideRows()

Dim r0 As Range, r1 As Range, r2 As Range, MultiRange As Range, r As Range

Set r0 = Sheets("Sheet1").Range("B1:C6")
Set r1 = Sheets("Sheet1").Range("B8:C8")
Set r2 = Sheets("Sheet1").Range("B10:C11")
Set MultiRange = Union(r0, r1, r2)

For Each r In MultiRange.Rows
    r.EntireRow.Hidden = (r.Cells(1,1).value = 0 AND r.cells(1, 2).value = 0)
Next r

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