VBA - 根据多个列中的值隐藏行

时间:2017-06-13 15:17:16

标签: excel-vba vba excel

我正在尝试我的第一段代码和VBA,并且已经研究了一段时间,但我无法让它工作。我试图隐藏多列的值为0(具有公式/数值的那些)或那些留空(文本)的行。在我的Excel中,第9-1000行的O,AB,AN列包含数值和AJ和AK 9-1000文本值。所以我想隐藏O,AB和AN为零的所有那些并且AJ和AK是空白的。我可以根据第一个标准编写基本代码隐藏行:

Sub HideAccounts()

Dim TotExp As Range
Dim Cell As Range

Set TotExp = Range("O9:O1000")

Application.ScreenUpdating = False

For Each Cell In TotExp.Rows
If Cell.Value = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False

End If

Application.ScreenUpdating = True

Next Cell

End Sub

所以现在我想添加其他标准,但我正在努力解决多个标准,当我尝试插入GoTo语句时,它也不起作用......

非常感谢任何帮助!!

谢谢, 丹妮拉

1 个答案:

答案 0 :(得分:0)

以下是包含多个条件的一种方法:

Option Explicit

Public Sub HideAccounts()
    Dim i As Long, hide As Boolean

    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets(1)         '<-- set this to the relevant sheet
        For i = 9 To 1000
            hide = (.Range("O" & i).Value2 = 0)
            hide = hide And (.Range("AB" & i).Value2 = 0)
            hide = hide And (.Range("AN" & i).Value2 = 0)
            hide = hide And (Len(.Range("AJ" & i).Value2) = 0)
            hide = hide And (Len(.Range("AK" & i).Value2) = 0)
            .Rows(i).EntireRow.Hidden = hide
        Next
    End With
    Application.ScreenUpdating = True
End Sub
相关问题