2015-01-07 2 views
0

Итак, у меня есть список данных (задач) в ячейках от A2 до E2, а в столбце F - это вариант, когда моя команда назначает им свое имя. То, что я пытаюсь сделать, - это то, что имя вводится в F2, F3, F4 .... соответствующая строка исчезает.Скрыть строки при заполнении ячейки

Пример.

F1 = «Боб», затем ряд 1 исчезает.

Это то, что у меня есть до сих пор, но у меня есть чувство, что я могу идти не в том направлении.

Option Explicit 
Private Sub Worksheet_Activate() 
    Dim r As Range, c As Range 
    Set r = Range("a1:a299") 
    Application.ScreenUpdating = False 
    For Each c In r 
     If Len(c.text) = 0 Then 
      c.EntireRow.Hidden = True 
     Else 
      c.EntireRow.Hidden = False 
     End If 
    Next c 
    Application.ScreenUpdating = True 
End Sub 

Я также не уверен, что это немедленно обновит его, или мне придется запускать макрос каждый раз. Если я правильно понял, он должен сделать первый.

+0

вы хотите использовать Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) событие не событие Activate. Затем просто проверьте цель, чтобы увидеть, является ли это столбцом F, затем проверьте значение и, если нужно, спрячьте строку – Sorceri

ответ

1

согласно мой комментарий

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    'check to make sure we only have 1 cell 
    If Target.Count = 1 Then 
     'check the column 
     If Target.Column = 6 Then 'F column 
      'check text length and if greater then 0 hide the row 
      If Len(Target.Text) > 0 Then 
       Target.EntireRow.Hidden = True 
      Else 
       Target.EntireRow.Hidden = False 
      End If 
     End If 
    End If 
End Sub