首页 > 解决方案 > VBA隐藏具有多个条件的行

问题描述

如果(将使用第 148-149 行作为示例),我需要帮助来隐藏行:

如果 Either J OR P 148 的值 >0 并且 J AND P 149 =0 THEN 149 应该隐藏。

如果 J 或 P 149 >0 那么 148 和 149 都应该显示

如果 J OR P 148 AND J OR P 149 中的值 >0 >0,则显示 148 AND 149

例子

这应该是最终结果

    Sub Skjul_0_Storkundeaftale()
 Dim beginRow As Long, endRow As Long, CheckCol_1 As Long, rngHide As Range
  beginRow = 148 'first row'
  endRow = 176 'last row'
  CheckCol_1 = 10 'column number --> O'

For rowNum = beginRow To endRow
    If Cells(rowNum, CheckCol_1).Value <= 0 And Cells(rowNum + 1, CheckCol_1).Value = "" Then
        Cells(rowNum, CheckCol_1).EntireRow.Hidden = True
    End If
Next rowNum
End Sub

标签: excelvbaexcel-formula

解决方案


这是一个新代码。也许不是最好的编码,但它确实有用:)

Sub Skjul_0_Storkundeaftale()

beginRow = 148 'first row'
endRow = 176 'last row'
CheckCol_1 = 4 'column number --> Gulvarme
CheckCol_2 = 10 'First column
CheckCol_3 = 16 'Second column

For rowNum = beginRow To endRow
    If Cells(rowNum, CheckCol_1).Value <> "" And Cells(rowNum + 1, CheckCol_2).Value = 0 And Cells(rowNum + 1, CheckCol_3).Value = 0 Then
        Cells(rowNum + 1, CheckCol_1).EntireRow.Hidden = True

    End If
Next rowNum

For rowNum = beginRow To endRow
    If Cells(rowNum, CheckCol_1).Value <> "" And Cells(rowNum, CheckCol_2).Value = 0 And Cells(rowNum, CheckCol_3).Value = 0 _
    And Cells(rowNum + 1, CheckCol_2).Value = 0 And Cells(rowNum + 1, CheckCol_3).Value = 0 Then
        Cells(rowNum, CheckCol_1).EntireRow.Hidden = True

    End If
Next rowNum


End Sub

推荐阅读