如何检查一个工作簿中的原始数据与另一个工作簿中的主列表

我是VBA-Excel的新手,需要一些帮助。 我有一个工作簿,其中包含可接受的string值的主列表。 此工作簿定期更新。 我有另一个工作簿,其中包含所有的原始数据。 我想让我的macros打开主列表,从主列表中检查我的原始数据的第二列中的每个条目,并删除没有包含在我的主列表中的任何单元格。 我需要一些指引,让我在路上。 这是我到目前为止:

Sub Firstcheck()

Dim wkb As Object Dim wkbname As Object Dim masterlist As Range Dim cell As Range Set wkbname = ActiveWorkbook Set wkb = Workbooks.Open(Filename:="T:\Communications and Media\Media\Media Reporting\media master list.xlsx") wkb.Activate Set masterlist = Range("a1", Range("a1").End(xlDown)) wkbname.Activate Range("a1").Select For i = 1 To 3 If Len(ActiveCell.Offset(1, 0).Value) > 1 Then ActiveCell.Offset(1, 0).Select For Each cell In masterlist.Cells If cell = ActiveCell.Offset(0, 1).Value Then ActiveCell.Interior.ColorIndex = 5 Exit For Else: ActiveCell.Interior.ColorIndex = 4 End If Next cell Else: i = 10 End If i = i - 1 Next End Sub 

提前感谢您提供的任何帮助。

这是没有Excel的部分,但如何这样的事情…

  public class CellValue { public string theValue { get; set; } } List<CellValue> masterList = new List<CellValue>(); //Load these values into the list List<CellValue> otherList = new List<CellValue>(); //Load these values into the list List<string> onesToDelete = otherList.Select(x => !masterList.Any(x2 => x2.theValue == x.theValue)); 

在VBA中,你可以试试这个:

 Sub Firstcheck() Dim cel As Range, masterList With Workbooks.Open("T:\Communications and Media\Media\Media Reporting\media master list.xlsx") With .Worksheets(1) masterList = .Range(.Range("A1"), .Range("A1").End(xlDown)).value2 End With .Close False End With For Each cel In ThisWorkbook.Worksheets(1).UsedRange.Columns(2).Cells If IsError(Application.match(Trim(cel.value2)), masterList) Then cel.Interior.ColorIndex = 4 Else cel.Interior.ColorIndex = 5 End If Next End Sub