Использовать события листа.Alt
+ F11
, чтобы открыть интерфейс VBA:
Дважды щелкните «Лист1» в левой части интерфейса и вставьте его в:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 0 Then
update_sheet
End If
End Sub
Ниже, где написано «Sheet1 ", щелкните правой кнопкой мыши на" Модули ".Наведите курсор на вставку и нажмите «Добавить модуль».Вставьте следующий код в модуль:
Sub update_sheet()
s1_rows = ThisWorkbook.Worksheets(1).Cells(ThisWorkbook.Worksheets(1).Rows.Count, "F").End(xlUp).Row
Set s1_rng = ThisWorkbook.Worksheets(1).Range("F1:F" & s1_rows)
s2_rows = 1
For Each cell In s1_rng
If cell.Value = "Not Passed" Then
cell.EntireRow.Copy
ThisWorkbook.Worksheets(2).Range("A" & s2_rows).PasteSpecial xlPasteValues
s2_rows = s2_rows + 1
End If
Next cell
Application.EnableEvents = True
End Sub
Это можно улучшить, но вы должны начать с него.