我有一个好奇的VBA问题。它有简单的代码来隐藏未使用的行。它对我有好处,(我实际上没有做到)并且修复了所有错误。
但是,现在它已停止仅在一个工作表中运行工作表激活代码。其他工作表的代码运行正常,几乎相同(list3而不是list1作为命名范围,而EntireColumn而不是EntireRow)。
当我打开Visual Basic并尝试手动运行工作表激活代码时,它会给我这个错误:
编译错误:对象库无效或包含对无法找到的对象定义的引用。
我不知道从哪里开始尝试修复它,特别是当Google似乎没有产生任何结果时,即使使用新的居高临下的徽标也是如此。
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim cell As Range
For Each cell In Range("list3") 'This changes to list1 to list4
cell.EntireRow.Hidden = cell.Value2 = ""
Next cell
Application.ScreenUpdating = True
End Sub
修改
现在有两个工作表不起作用,我想知道它是否与"EntireRow.Hidden"
有关。
答案 0 :(得分:0)
未激活是失败,但是停用。在激活excel之前必须停用活动工作表,因此如果只有一个工作表...无法停用!
您可以尝试一个技巧,通过激活最小化然后最大化。会产生同样的效果,如果你把它们放在同一个声明中,你甚至都不会感到休息。