防止基于非空单元格隐藏行



如果任何一行在D列的单元格中有文本,我需要防止一系列行被隐藏。

Private Sub Worksheet_Change(ByVal Target As Range)
Set rRng = Sheet1.Range("D35, D36, D37, D38, D39, D40")
If Target.Row >= 34 And Target.Row <= 40 Then

If IsEmpty("rRng.value") Then
Range("D35:D40").EntireRow.Hidden = False

Else: Range("D35:D40").EntireRow.Hidden = (Range("D34").Value = "")
End If
End If
End Sub

您可能还需要从计算事件中触发隐藏/取消隐藏,以便任何更改值的公式/vba也会触发和更新。(我不确定预期的结果是什么,所以下面的代码不是替代品(

Private Sub Worksheet_Calculate()
HideRows
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
HideRows
End Sub
Public Sub HideRows()
Dim R As Range: Set R = Sheet1.Range("D35:D40")
If Excel.WorksheetFunction.CountA(R) > 0 Then
R.EntireRow.Hidden = False
Else
R.EntireRow.Hidden = True
End If
End Sub
Sub SetAValue()
Sheet1.Range("D35").Value = "show"
End Sub

最新更新