![](/img/trans.png)
[英](Excel-VBA) Specific data import (on the background) in the active sheet
[英]Excel-VBA Check If Sheet Contains
基本上,我需要比较订单号,如果与未完成的工作表中的订单号匹配,则将其添加到工作表1中。
例如。
sheet 1 contains: OR1545 OR1687 OR898 OR0142
未完成的工作表包含。
OR898 6684D8D OR0142 6544D OR0142 8489DD OR0142 897EEA
因此,sheet1将检查未完成的工作表并将项目添加到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 + Enter输入的Array Formula
,并将其复制到感兴趣的其余单元格中。
假设您的数据组织如下:
工作表Sheet1:
优秀表:
这是代码:
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
虽然没有测试。
因此,请对重复数据进行安全性测试。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.