根据其他工作表标准删除行

根据另一张工作表中的条件,我在Excel的工作表中有两个删除行。

条件表如下

Delete(Y/N) ReferenceID Y 1 N 2 Y 3 Y 4 N 5 

数据表如下

 Name ReferenceID John 1 Andy 2 Mary 3 Anna 4 Rony 5 

根据删除(是/否)栏的forms,我必须删除约翰,玛丽和安娜,参考ID 1,3和5

我在这里查看了另一个解决scheme示例,但情况似乎来自同一张表。 我不知道如何根据适用的参考文献从另一张纸上进行工作。

任何想法如何做到这一点。

使用Yes创buildReferenceID字典,然后使用xlFilterValues参数在字典键上创buildAutoFilter。 如果有可见的行,请删除它们。

 Option Explicit Sub qwewqw() Dim d As Long, dict As Object Set dict = CreateObject("Scripting.Dictionary") dict.comparemode = vbTextCompare With Worksheets("Conditional") For d = 2 To .Cells(Rows.Count, "B").End(xlUp).Row If LCase(.Cells(d, "A").Value2) = "y" Then dict.Item(CStr(.Cells(d, "B").Value2)) = .Cells(d, "A").Value2 End If Next d End With With Worksheets("Data") If .AutoFilterMode Then .AutoFilterMode = False With .Cells(1, "A").CurrentRegion .AutoFilter Field:=2, Criteria1:=dict.keys, Operator:=xlFilterValues With .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count) If CBool(Application.Subtotal(103, .Cells)) Then .Cells.EntireRow.Delete End If End With .AutoFilter End With End With End Sub 

奇怪的是,以这种方式使用字典的键要求您将数字作为文本进行过滤。