5、类似分组显示数据,代码是
8Y7MAARl.rar
(8.37 KB, 下载次数: 817)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim c As Range With Target If .Count = 1 And .Column = 1 Then '选中一个单元格,且在第一列时 If Not .Offset(1, 0).EntireRow.Hidden And .Value <> "" Then '选中的下面一个单元格为显示,且但前单元格不为空白时 Set c = .End(xlDown) '设置c为但前单元格向下的不为空的单元格,类似于按Ctrl+向下箭头 If c.Row = 65536 Then Set c = [b65536].End(xlUp).Offset(1, 0) '如果这个单元格为最后一行,设置它为B列最后一个 '非空单元格的下一个 If c.Row > .Row Then Range(.Offset(1, 0), c.Offset(-1, 0)).EntireRow.Hidden = True '空白区域对应的行隐藏 End If Else Set c = .Offset(1, 0) '如果下面一个单元格是隐藏的,则执行下面代码 Do c.EntireRow.Hidden = False '从下一个单元格一直往下循环,直到有个单元格不为隐藏的 Set c = c.Offset(1, 0) Loop Until Not c.EntireRow.Hidden End If End If '针对一个单元格一个单元格的选择 If .Column = 1 And .Count = 65536 Then '选中A列时全部显示 Columns(1).EntireRow.Hidden = False ElseIf .Column = 2 And .Count = 65536 Then '选中B列时,所有a列空白单元格隐藏 Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True End If End With End Sub
[此贴子已经被plxmm于2006-7-28 18:27:50编辑过] |