如果工作表包含Excel-VBA检查

基本上我需要比较订单号,如果它匹配出色的工作表上,将其添加到工作表1。

例如。

工作表1包含:
 OR1545  
 OR1687  
 OR898   
 OR0142  

杰出的表单包含。

 OR898 6684D8D
 OR0142 6544D
 OR0142 8489DD
 OR0142 897EEA

因此,工作表1将检查未完成的工作表并将这些项目添加到OR列。
如果有更多的项目去下一列。

所以表1中的最终输出是:

 OR0142 615 6544D 897EEA
 OR898 645DD 6684D8D     

这里是使用公式:

=IFERROR(TRANSPOSE(INDEX(Sheet2!$B$1:$B$5,SMALL(IF(Sheet2!$A$1:$A$5=$A2,ROW(Sheet2!$A$1:$A$5)),COLUMN(A$1)))),"")

以上是在Cell C2使用Ctrl + Shft + EnterinputArray Formula ,并将其复制到其他感兴趣的单元格中。
假设你的数据组织如下:

工作表Sheet1:
工作表Sheet1

杰出的表格:
Sheet2中

这里是代码:

 Sub test() Dim ws1 As Worksheet, ws2 As Worksheet Dim myfilters Dim myfilter Dim rng1 As Range, rng2 As Range Set ws1 = Sheet3 Set ws2 = Sheet2 Application.ScreenUpdating = False With ws1 Set rng1 = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp)) myfilters = rng1.Offset(1, 0).Resize(rng1.Rows.Count - 1) End With With ws2 .AutoFilterMode = False Set rng2 = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp)) For Each myfilter In myfilters rng2.AutoFilter Field:=1, Criteria1:=myfilter rng2.Offset(1, 1).SpecialCells(xlCellTypeVisible).Copy rng1.Find(myfilter, rng1(1)).Offset(0, 2).PasteSpecial xlPasteValuesAndNumberFormats, , , True .AutoFilterMode = False Next End With Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

虽然没有testing过。
因此为了安全起见,请在重复数据中进行testing
希望这可以帮助。