Это код, который у меня есть для рабочего листа. Это работает, если я набираю что-то в D32, но если формула автоматически меняет число, это ничего не делает. Что я делаю неправильно? Я в основном настроил, чтобы скрыть строку, если ячейка равна нулю, или показать ее, если это положительное число.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("D32")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
    If Range("D32").Value = "0" Then
        Rows("32:32").EntireRow.Hidden = True
    ElseIf Range("D32").Value = "<>0" Then
        Rows("32:32").EntireRow.Hidden = False
    End If

    End If

End Sub

1 ответ1

0

Мэтью, попробуйте этот код, полностью работоспособен.

Private Sub Worksheet_Calculate() 

Dim KeyCells As Range 
Set KeyCells = Range("C1") 

If Range("C1").Value = 0 Then 
Rows("3:5").EntireRow.Hidden = True 

ElseIf Range("C1").Value <> 0 Then 

Rows("3:5").EntireRow.Hidden = False 

End If 

End Sub  

NB. При необходимости отрегулируйте ссылки на ячейки / строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .