[英]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.