У меня есть лист, в котором первая ячейка A1 имеет номер 0 или 1 на основе ввода с другого листа в зависимости от выбора пользователя.

Если ячейка A1 изменится на 0, тогда вся строка будет скрыта.

Я использую следующее ниже, и он отлично работает Авто / скрытие строки.

То, что я сейчас собираюсь сделать, это показать строку, если та же ячейка изменится с 0 на 1.

Спасибо за любую помощь! Вот файл ... http://jmp.sh/89BVI0A

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A:A]) Is Nothing Then
        Target.Rows.Hidden = UCase(Target.Value) = "0"
    End If
End Sub

Копию электронной таблицы можно найти здесь.

1 ответ1

1

Используйте этот код в модуле Sheet2


Option Explicit

Private Sub Worksheet_Calculate()    'Sheet2 Module

    Const FC = "A"    'Filter Column

    Dim lr As Long, filterCol As Range

    lr = Me.Cells(Me.Rows.Count, FC).End(xlUp).Row      'Determine last cell in ColA

    Set filterCol = Me.Range(Me.Cells(1, FC), Me.Cells(lr, FC)) 'ColA "UsedRange"

    Application.EnableEvents = False
        filterCol.Formula = "=Sheet1!A1"                'Update all formulas
        filterCol.AutoFilter Field:=1, Criteria1:="1"   'Show only rows where ColA = 1
    Application.EnableEvents = True
End Sub

Это захватит взаимодействие с пользователем в Sheet1 которое обновит формулы в Sheet2

Он будет скрывать все строки со значением 0 в Sheet2.colA

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