EXCEL怎么设置触发后,符合条件的行自动隐藏?

如图,假如我在A57输入1,则自动隐藏B列没有内容的行,像58.60.62.64这些行,甚至隐藏以下全部没有内容的B列行。。

按ALT+F11.在左边找到这张表,双击,在右边的空白处复制下面的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 3 And .Count = 1 Then
If .Value = "完成" Then
.Rows.EntireRow.Hidden = True
End If
End If
End With
End Sub
然后关闭,回到C列,输入"完成"就隐藏了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-07
固定以A57=1时,为触发条件吗?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Row = 57 And Target = 1 Then
Range("b:b").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
End Sub追问

是的,有其它方法也可以的,只要简洁方便

追答

右键当前工作表标签---查看代码--把下列代码复制进去即可!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Row = 57 And Target = 1 Then
Range("b:b").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End If
End Sub

追问

我用的07,点右键,没有当前工作表标签呢?

追答

sheet1 sheet2 这个是当前工作表标签,对着这个标签(表名)点右键!

追问

还有就是如果要在其它格用这个命令,要在你上面的代码里面怎么改?麻烦给说说,再加几十分哈~~

追答

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$57" And Target = 1 Then
Range("b:b").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
ElseIf Target.Address = "$A$57" And Target 1 Then
Cells.Select
Selection.EntireRow.Hidden = False
Range("a57").Select
End If
End Sub

"$A$57"修改这个就可以了!

追问

不行呀大哥,,假如我要在U19打“1“,来判断V列没有内容的隐藏,要怎么改呢?
你按上面的复制,然后改一下,我就知道其它的怎么改了

追答

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$U$19" And Target = 1 Then
Range("V:V").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
ElseIf Target.Address = "$U$19" And Target 1 Then
Cells.Select
Selection.EntireRow.Hidden = False
Range("U19").Select
End If
End Sub

本回答被提问者采纳
第2个回答  2013-02-07
你直接筛选B列 非空追问

怎么操作呢

相似回答