如何在Excel

时间:2018-01-03 17:19:22

标签: excel vba excel-vba

我有两张纸。在两个工作表中,我都有一个列(B),其中每一行都是一个不同的名称:

Example

工作表'A'在列中有名称,这些名称是'领先'。 工作表'B'在此列中也有名称,这些名称可能已过时。

我想要的:一个可以检查姓名的宏。

  • 删除工作表B中的(不再是)工作表A中的名称(删除整个影响行)
  • 在工作表A中添加尚未(尚未)在新行中的工作表B
  • 中的名称

到目前为止我所拥有的:

Sub DeleteRowsThatDoNotMatch()

Dim rng As Range
Dim Rng1 As Range, Rng2 As Range
Dim thisRow As Long
Dim arr1 As Variant
Dim arr2 As Variant
Dim dic2 As Variant
Dim OutArr As Variant

xTitleId = "Test"
Set Rng1 = Application.Selection
Set Rng1 = Application.InputBox("Welke data moet gewijzigd worden? :", xTitleId, Rng1.Address, Type:=8)
Set Rng2 = Application.InputBox("Selecteer de nieuwe waardes:", xTitleId, Type:=8)
Set Rng1 = Rng1.Columns(1)
Set dic2 = CreateObject("Scripting.Dictionary")
arr2 = Rng2.Value

For i = 1 To UBound(arr2, 1)
    xKey = arr2(i, 1)
    dic2(xKey) = ""
Next
thisRow = Rng1.Rows.Count
Do While thisRow > 0
    If Not dic2.Exists(Rng1.Cells(thisRow, 1).Value) Then
        Rng1.Cells(thisRow, 1).EntireRow.Delete
    End If

    thisRow = thisRow - 1

Loop

End Sub

这按预期工作;问题是在工作表A中添加了ARE的名称,但在工作表B中没有(还有)。

0 个答案:

没有答案