我找到了此代码,并将其放入工作表代码中,保存并退出,并且在打开时不执行任何操作。谢谢您的时间。
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
答案 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无效。