我正在尝试编写一个简单的代码,如果在上一行输入了数据,则会自动取消隐藏下一行。这个想法是,当有人在电子表格中输入更多详细信息时,它会根据需要增长,并且所有多余的行都会隐藏在开头。
范围是从第 2 行到第 56 行,但第 56 行。
数据从 D 列输入到 M 列,但我只希望在取消隐藏行时评估 D 列
Sub UnHideRows()
Dim i As Integer
If Target.Address = Worksheet("Blah").Range("D3:D55") Then
i = ActiveCell.Row
Worksheet("Blah").Row(i+1).hidden = false
End if
End Sub
不幸的是,这不起作用,我只希望在当前行 D 单元格中输入数据时取消隐藏下一行。如能得到任何帮助,我将不胜感激。如果删除了所有数据,也不需要重新隐藏该行。
答案1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And _
Target.Offset(1, 0).EntireRow.Hidden Then
Target.Offset(1, 0).EntireRow.Hidden = False
' Target.Offset(1, 0).Activate '
End If
End Sub
我只希望在取消隐藏行时评估 D 列
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And _
Target.Column = 4 And _
Target.Offset(1, 0).EntireRow.Hidden Then
Target.Offset(1, 0).EntireRow.Hidden = False
' Target.Offset(1, 0).Activate '
End If
End Sub