Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA隐藏具有多个条件的行_Excel_Vba_Excel Formula - Fatal编程技术网

Excel VBA隐藏具有多个条件的行

Excel VBA隐藏具有多个条件的行,excel,vba,excel-formula,Excel,Vba,Excel Formula,我需要帮助隐藏行,如果(将使用行148-149作为示例): 如果J或P148的值大于0,且J和P149均为0,则149应隐藏 如果J或P149>0,则148和149都应显示 如果J或P148中的值>0且J或P149>0,则显示148和149 Sub-Skjul_0_Storkundeaftale() 变暗起始行为长,结束行为长,选中列1为长,右侧为范围 beginRow=148“第一行” endRow=176“最后一行” CheckCol_1=10'列号-->O' 对于rowNum=begi

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

如果J或P148的值大于0,且J和P149均为0,则149应隐藏

如果J或P149>0,则148和149都应显示

如果J或P148中的值>0且J或P149>0,则显示148和149

Sub-Skjul_0_Storkundeaftale()
变暗起始行为长,结束行为长,选中列1为长,右侧为范围
beginRow=148“第一行”
endRow=176“最后一行”
CheckCol_1=10'列号-->O'
对于rowNum=beginRow到endRow

如果单元格(rowNum,CheckCol_1).Value请尝试下一个代码:

Sub Skjul_0_Storkundeaftale()
 Dim beginRow As Long, endRow As Long, rowNum As Long
  beginRow = 148 'first row'
  endRow = 176  'last row'

 For rowNum = beginRow To endRow
    If Cells(rowNum, "P").value <= 0 Or Cells(rowNum, "J").value <= 0 Then
        If Len(Cells(rowNum, "P").value) <> 0 Then
            If Len(Cells(rowNum + 1, "P").value) <> 0 Then
                If Cells(rowNum + 1, "P").value = 0 And _
                    Cells(rowNum + 1, "J").value = 0 And _
                        Cells(rowNum + 2, "J").value = Empty Then
                    Cells(rowNum + 1, "P").EntireRow.Hidden = True
                    rowNum = rowNum + 1
                End If
            End If
        End If
    End If
 Next rowNum
End Sub
Sub-Skjul_0_Storkundeaftale()
Dim beginRow尽可能长,endRow尽可能长,rowNum尽可能长
beginRow=148“第一行”
endRow=176“最后一行”
对于rowNum=beginRow到endRow
如果单元格(rowNum,“P”)。值
Sub Skjul_0_Storkundeaftale()
beginRow=148“第一行”
endRow=176“最后一行”
CheckCol_1=10'列号-->O'
检查柱2=2'b列
对于rowNum=beginRow到endRow
如果单元格(rowNum,CheckCol_2).Value“”和单元格(rowNum+1,CheckCol_1).Value=0,则
单元格(rowNum,CheckCol_1).EntireRow.Hidden=True
如果结束
下一行
端接头
你可以用这样的东西。您仍然可以在括号内导航行号。所以,如果您想检查下面的1行,只需执行rowNum+1。
您还可以在代码中添加其他“和”of“IF”规则。

这里是一个新代码。也许不是最好的编码,但它做到了:)

Sub-Skjul_0_Storkundeaftale()
beginRow=148“第一行”
endRow=176“最后一行”
CheckCol_1=4'列编号-->Gulvarme
检查Col_2=10'第一列
检查柱3=16'第二列
对于rowNum=beginRow到endRow
如果单元格(rowNum,CheckCol_1).Value“”和单元格(rowNum+1,CheckCol_2).Value=0和单元格(rowNum+1,CheckCol_3).Value=0,则
单元格(rowNum+1,CheckCol_1)。EntireRow.Hidden=True
如果结束
下一行
对于rowNum=beginRow到endRow
如果单元格(rowNum,CheckCol_1).Value“”和单元格(rowNum,CheckCol_2).Value=0和单元格(rowNum,CheckCol_3).Value=0_
和单元格(rowNum+1,CheckCol_2)。Value=0和单元格(rowNum+1,CheckCol_3)。然后Value=0
单元格(rowNum,CheckCol_1).EntireRow.Hidden=True
如果结束
下一行
端接头

这两行中哪一行应该被视为标题?“其他:”?如果没有你的“解释”,我认为大胆的解释应该是……你是对的。第148、151、154、157行是标题。必须仅隐藏标题下方的行吗?在某些情况下。。。那些在左边某处有“Undtagelse:”的人?如果是的话,最好告诉我们那是哪一列。在J和P列之间有隐藏列吗?从您的示例图片中很难理解太多内容。。。我希望图片中也有列标题。
CheckCol_1
看起来是P:P列,但是手动标记为“J”的列也不会根据您的问题进行检查?第148-149行:如果J148或P148=Hi,他的列似乎只查看J。如果P有值,它也会隐藏行,因此我不理解您的问题。所以一定是这样?如果标题J或P=0,标题行+1 J或P 0,那么标题行+1必须隐藏?我刚刚上传了一张图片,说明情况如何。让我知道这是否更有意义。当所有4个值都为0时,它应该怎么做?因为现在,如果第+1行的J或P=0,则隐藏第+1行。你能给我“Gulvarme”的列号吗?如果所有4个值都是0,那么隐藏这两行。“gulvarme”的列号为D@thomasuponor:请测试更新后的代码并确认其正常工作。嗨,韦斯利,你能帮助解决类似问题吗。这一次添加了一个新行,下面是粗体文本。所以我们有两行而不是一行。@thomasuponor,你能再解释一下吗?
Sub Skjul_0_Storkundeaftale()
 Dim beginRow As Long, endRow As Long, rowNum As Long
  beginRow = 148 'first row'
  endRow = 176  'last row'

 For rowNum = beginRow To endRow
    If Cells(rowNum, "P").value <= 0 Or Cells(rowNum, "J").value <= 0 Then
        If Len(Cells(rowNum, "P").value) <> 0 Then
            If Len(Cells(rowNum + 1, "P").value) <> 0 Then
                If Cells(rowNum + 1, "P").value = 0 And _
                    Cells(rowNum + 1, "J").value = 0 And _
                        Cells(rowNum + 2, "J").value = Empty Then
                    Cells(rowNum + 1, "P").EntireRow.Hidden = True
                    rowNum = rowNum + 1
                End If
            End If
        End If
    End If
 Next rowNum
End Sub
Sub Skjul_0_Storkundeaftale()

beginRow = 148 'first row'
endRow = 176'last row'
CheckCol_1 = 10 'column number --> O'
CheckCol_2 = 2 ' column b

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

       End If
    Next rowNum

End Sub
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