excel满足条件时自动隐藏

机器编号 日期 产品编号
B1155AXVN 2012-6-1 156CMU25
B1155AXVN 2012-6-6 156CMU25
如何用VBA语言来实现,当日期小于系统日期时,2012-6-1这行自动隐藏。
我在模块里面插入下面代码后,没有效果。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Target < Date Then
Range(Target.Row & ":" & Target.Row).EntireRow.Hidden = True
End If
End Sub

  Excel 2003:
  单击菜单“格式→工作表→隐藏”,工作表即被隐藏。

  Excel 2007/2010:
  方法一:在“开始”选项卡的“工作表”组中,单击“格式→隐藏和取消隐藏→隐藏工作表”。
  方法二:右击所选择的工作表标签,在弹出的快捷菜单中选择“隐藏”即可。

  要取消隐藏工作表 ,用下面的方法,但一次只能取消一个工作表的隐藏:
  Excel 2003:
  单击菜单“格式→工作表→取消隐藏”,在弹出的“取消隐藏”对话框中选择某个工作表,单击“确定”。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-06
这个过程不是在模块里粘贴的,是在你的工作表名称上点鼠标右键,选查看代码,在打开的窗口里粘贴的,并且是在选择的单元格变化时触发,所以你要把B列所有要设置的单元格逐一选择一遍才能达到你想要的效果.
如果你要一次把B列所有符合条件的行都隐藏.用循环去做,(代码也是在当前工作表查看代码然后粘贴,然后在工作表按ALT+F8,选中执行)
sub 隐藏B列小于当前日期的行()
endrow=range("B65536").end(xlup).row
for i=1 to endrow
if range("B" &i)=date then range("B &i).entirerow.hidden=true
next
end sub本回答被网友采纳
第2个回答  2012-06-06
,
相似回答