Как заполнить лист на основе значений ячейки из другого листа - PullRequest
0 голосов
/ 03 мая 2019

У меня есть две таблицы («Рабочая таблица A» и «Рабочая таблица B»).

Рабочий лист A содержит список тестов. Каждая строка представляет выполненный тест. Столбец F имеет значение «Пройдено» или «Не пройдено».

Если «Не пройдено», необходимо автоматически добавить всю строку в «Рабочий лист B», представляющий список действий.

Любое предложение о том, как сделать это динамически, то есть без необходимости запуска макроса вручную?

1 Ответ

0 голосов
/ 03 мая 2019

Использовать события листа.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

Это можно улучшить, но вы должны начать с него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...