Excel 根据单元格值隐藏行
如果多个单元格中的值等于0,我想隐藏一行。我已经尝试过这个VBA代码,它“有效”,但最后带0的行没有被隐藏Excel 根据单元格值隐藏行,excel,vba,Excel,Vba,如果多个单元格中的值等于0,我想隐藏一行。我已经尝试过这个VBA代码,它“有效”,但最后带0的行没有被隐藏 Sub Rehien_ausblenden() Dim i As Integer Application.ScreenUpdating = False Worksheets("Daten").Activate For i = 12 To 45 If Cells(i, 7).Value = 0 And Cells(i, 8)
Sub Rehien_ausblenden()
Dim i As Integer
Application.ScreenUpdating = False
Worksheets("Daten").Activate
For i = 12 To 45
If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
And Cells(i, 9).Value = 0 And Cells(i, 10).Value Then
Rows(i).EntireRow.Hidden = True
End If
Next
MsgBox ("Completed")
Application.ScreenUpdating = True
End Sub
和单元格(i,10)。那么可能缺少值=0
?请检查和单元格(i,10).Value=0是否有效
此外,我建议进行以下修改:
- 避免使用
。激活并使用With
语句(您可能会从阅读中受益)
)
- 使用
Long
而不是Integer
:在VBA()中使用Integer
没有任何好处,但是使用Integer
进行行计数很容易出错,因为Excel的行数超过了Integer
所能处理的行数
请注意,您的代码只隐藏行,但从不取消隐藏任何内容。因此,如果多次运行此命令,任何隐藏行都将始终保持隐藏状态,即使if
语句不再为真
Sub Rehien_ausblenden()
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Daten")
Dim i As Long
For i = 12 To 45
If .Cells(i, 7).Value = 0 And .Cells(i, 8).Value = 0 _
And .Cells(i, 9).Value = 0 And .Cells(i, 10).Value = 0 Then
.Rows(i).EntireRow.Hidden = True
End If
Next i
End With
MsgBox "Completed"
Application.ScreenUpdating = True
End Sub
和单元格(i,10)。那么可能缺少值=0
?请检查和单元格(i,10).Value=0是否有效
此外,我建议进行以下修改:
- 避免使用
。激活并使用With
语句(您可能会从阅读中受益)
)
- 使用
Long
而不是Integer
:在VBA()中使用Integer
没有任何好处,但是使用Integer
进行行计数很容易出错,因为Excel的行数超过了Integer
所能处理的行数
请注意,您的代码只隐藏行,但从不取消隐藏任何内容。因此,如果多次运行此命令,任何隐藏行都将始终保持隐藏状态,即使if
语句不再为真
Sub Rehien_ausblenden()
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Daten")
Dim i As Long
For i = 12 To 45
If .Cells(i, 7).Value = 0 And .Cells(i, 8).Value = 0 _
And .Cells(i, 9).Value = 0 And .Cells(i, 10).Value = 0 Then
.Rows(i).EntireRow.Hidden = True
End If
Next i
End With
MsgBox "Completed"
Application.ScreenUpdating = True
End Sub
正如Ren所提到的,您确实需要按如下方式更正代码:
If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
And Cells(i, 9).Value = 0 And Cells(i, 10).Value = 0 Then
(在第10列的单元格中添加=0
)
此外,我想通知您,不在单元格中填充值也会导致单元格值为零:在我的例子中,我只在第12行中填充了值0,其余的都是空的,但从12到45的所有行都是隐藏的。如任所述,您确实需要按如下方式更正代码:
If Cells(i, 7).Value = 0 And Cells(i, 8).Value = 0 _
And Cells(i, 9).Value = 0 And Cells(i, 10).Value = 0 Then
(在第10列的单元格中添加=0
)
此外,我想通知您,不在单元格中填充值也会导致单元格值为零:在我的例子中,我只在第12行中填充了值0,其余的都是空的,但从12到45的所有行都是隐藏的