繁体   English   中英

基于 A 列隐藏/取消隐藏行 (0/"")

[英]Hide/unhide rows based on Column A (0/"")

我找到了这段代码,我把它放在工作表代码中,保存并退出,它在打开时不做任何事情。 感谢您的时间。

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

正如@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 无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM