隐藏/取消隐藏基于列A(0 /“”)的行

时间:2020-09-28 00:20:55

标签: excel vba

我找到了此代码,并将其放入工作表代码中,保存并退出,并且在打开时不执行任何操作。谢谢您的时间。

Private Sub Worksheet_Calculate()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Me.Range("A1:A80")
    If c.Value = 0 Or c.Value = "" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
Next c
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:0)

正如@GSerg所说,事件“ Worksheet_Calculate”将在工作表计算时触发。

对于原始问题,它仅与工作表有关。似乎应该在激活工作表后触发它。可以通过以下代码引用它:

Private Sub Worksheet_Activate()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Me.Range("A1:A80")
    If c.Value = 0 Or c.Value = "" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
Next c
Application.ScreenUpdating = True
End Sub

@Luuk,您遇到错误,因为该代码未放入工作表中。 “我”是指代码粘贴到的对象。如果将代码放在sheet1中,则sheet1.Range(...)是有意义且有效的。但是,如果粘贴在工作簿或模块上的代码无效,则workbook.range()或module1.range无效。

相关问题