如何删除基于不同工作簿中的匹配单元格的行?

时间:2019-07-16 13:53:12

标签: excel vba

我有两个不同的工作簿,即工作簿A和工作簿B。我根据一些条件对工作簿A进行过滤,过滤后剩下的一切,我都从该工作簿的工作表1的D栏中获取,用于工作簿B的工作表2的E列中的匹配。在这种情况下,工作簿B是活动工作簿。

如果存在匹配项(如果可以在工作簿B的E列中找到过滤后的工作簿A的D列中的值),我想删除从工作簿B中找到该匹配项的整个行。但是,我在执行此操作时遇到了一些困难。这是我到目前为止的内容:

Sub UpdateMatrix()
'
' UpdateMatrix Macro
'

'
Dim Cell As Range
Dim FoundCell As Range
Dim FindString As String
' Dim RowNum As Long

For Each Cell In Workbooks("Workbook A.xlsm").Worksheets("Sheet 1").Range("D6:D65536")

    If IsEmpty(Cell) Then Exit For
    If Cell.EntireRow.Hidden = False Then
        With Workbooks("Workbook B.xlsm").Worksheets("Sheet 2").Range("E2:E65536")
            Set FoundCell = .Find(What:=Cell.Value, _
                                  LookIn:=xlValues, _
                                  LookAt:=xlWhole, _
                                  SearchOrder:=xlByRows, _
                                  SearchDirection:=xlNext, _
                                  MatchCase:=False)
            If Not FoundCell Is Nothing Then
                FoundCell.EntireRow.Delete
            End If
        End With
    End If
Next

End Sub

但是,它无法按预期运行(即使工作簿之间存在匹配,但该行并未从工作簿B中删除)。有什么想法吗?非常感谢!

0 个答案:

没有答案