我有两个工作表(“工作表A”和“工作表B”)。
工作表A包含测试列表。每行代表执行的测试。 F列的值为“通过”或“未通过”。
如果“未通过”,则需要将整行自动添加到代表动作列表的“工作表B”中。
关于如何动态执行此操作的任何建议,即无需手动运行宏?
答案 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
这可以改善,但是应该让您开始。