如何基于另一个工作表中的单元格值填充工作表

时间:2019-05-03 12:06:27

标签: excel vba

我有两个工作表(“工作表A”和“工作表B”)。

工作表A包含测试列表。每行代表执行的测试。 F列的值为“通过”或“未通过”。

如果“未通过”,则需要将整行自动添加到代表动作列表的“工作表B”中。

关于如何动态执行此操作的任何建议,即无需手动运行宏?

1 个答案:

答案 0 :(得分:0)

使用工作表事件。 Alt + F11打开VBA界面:

双击界面左侧的“ Sheet1”,并将其粘贴到:

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

这可以改善,但是应该让您开始。