比较工作表1 col 1到工作表2 col 1工作表1 col 6中的值

第一次发布一个问题,所以请纠正我,如果我做任何我不应该!

我有一个button按下button来比较2张表中的2列,并输出第1页第6列中第2列第1列的值,或者如果不匹配,则输出第1列第6列中的“无”。

我的代码是越野车,需要很长时间才能运行(在工作表1和工作表2上的约5000条目)。

我的代码部分工作; 它只能在任何一张纸上左右三分之一左右。

Sub Find_Sup() Dim count As Integer Dim loopend As Integer Dim PartNo1 As String Dim PartNo2 As String Dim partRow As String Dim SupRow As String Dim supplier As String Let partRow = 2 Let SupRow = 2 'Find total parts to check Sheets("Linnworks Supplier Update").Select Range("A1").End(xlDown).Select loopend = Selection.row Application.ScreenUpdating = False 'main loop For count = 1 To loopend jump1: 'progress bar Application.StatusBar = "Progress: " & count & " of " & loopend & ": " & Format(count / loopend, "0%") Let PartNo2 = Worksheets("Linnworks Supplier Update").Cells(SupRow, 1).Value Let supplier = Worksheets("Linnworks Supplier Update").Cells(SupRow, 2).Value If PartNo2 = "" Then SupRow = 2 Else jump2: Let PartNo1 = Worksheets("Linnworks Stock").Cells(partRow, 1).Value 'add part numbers than do match If PartNo2 = PartNo1 Then Let Worksheets("Linnworks Stock").Cells(partRow, 5).Value = supplier Let partRow = partRow + 1 Let count = count + 1 GoTo jump2 Else Let SupRow = SupRow + 1 GoTo jump1 End If End If Next Application.StatusBar = True End Sub 

我用C和C ++和一些VB.NET做了一些编码。 任何帮助简化这个代码或指引我在正确的方向将非常感激地收到!

我意识到有类似的问题,但我已经尝试过的所有其他选项(嵌套每个循环)似乎并没有正常工作。

这是我设法得到的最接近的。

很多感谢阅读

尝试这样的事情,并留下反馈,所以我可以编辑答案完美匹配

 Sub Main() Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = Sheets("Linnworks Supplier Update") Set ws2 = Sheets("Linnworks Stock") Dim partNo2 As Range Dim partNo1 As Range For Each partNo2 In ws1.Range("A1:A" & ws1.Range("A" & Rows.Count).End(xlUp).Row) For Each partNo1 In ws2.Range("A1:A" & ws2.Range("A" & Rows.Count).End(xlUp).Row) If StrComp(Trim(partNo2), Trim(partNo1), vbTextCompare) = 0 Then ws2.Range("E" & partNo1.Row) = partNo2.Offset(0, 1) ws2.Range("F" & partNo1.Row) = partNo2 End If Next Next 'now if no match was found then put NO MATCH in cell for each partno1 in ws2.Range("E1:F" & ws2.Range("A" & Rows.Count).End(xlUp).Row) if isempty(partno1) then partno1 = "no match" next End Sub