Excel项目名称搜索匹配- 2打开的文件



我一直在尝试处理一个特定的案例,但还不知道从我到目前为止所知道的到哪里去。如有任何帮助,我将不胜感激。

我发现了一些东西,我想看看我是否可以从它建立到我这里的特殊情况。我将内容从file2复制到sheet3,而不是使用两个单独的文件,看看这是否也可以工作。但是,在改变周围的值之后,我仍然得到一个错误(运行时错误9)。下标超出范围)

原来,我有两个excel文件。

File1在sheet2中A5之后的列ne中有项目名称。File2在sheet1中A3之后的列na中有项目名称。

我想写一个宏,可以放置一个数字(条形码)到ColumnD在file2中,从File1中的ColumnD找到,为每个单元格值在ColumnA从file2中匹配单元格值在ColumnE从File1。

换句话说,在列na中有项目名称的File2在列nd中没有条形码,搜索File1列ne中所有项目的列表,找到确切的名称匹配,从同一行复制包含条形码的列D的值,将条形码值粘贴到File2空列nd中。

Sub Find_Barcode()
Dim PartRngSheet1 As Range, PartRngSheet2 As Range
Dim lastRowSheet1 As Long, lastRowSheet2 As Long
Dim cl As Range, rng As Range
lastRowSheet1 = Worksheets("Sheet2").Range("E65536").End(xlUp).Row
Set PartRngSheet1 = Worksheets("Sheet2").Range("A1:A" & lastRowSheet1)
lastRowSheet2 = Worksheets("Sheet3").Range("A65536").End(xlUp).Row
Set PartRngSheet2 = Worksheets("Sheet3").Range("A1:A" & lastRowSheet2)
For Each cl In PartRngSheet1
    For Each rng In PartRngSheet2
        If (cl = rng) Or (cl = rng.Offset(0, 1)) Then
            rng.Offset(0, 4) = cl.Offset(0, 1)
        End If
    Next rng
Next cl
End Sub

试试下面的代码:假设File1 &File2是两个不同的工作簿,并且是打开的。

Sub Find_Barcode()
    Dim lastRow As Long, rngFind As Range, rngFound As Range
    lastRow = Workbooks("File2").Sheets("sheet1").Range("A65000").End(xlUp).Row
    Workbooks("File1").Activate
    Set rngFind = Workbooks("File1").Sheets("sheet2").Range("E5", Range("E65000").End(xlUp).Row)

    For i = 3 To lastRow
        Set rngFound = rngFind.Find(what:=Workbooks("File2").Sheets("sheet1").Cells(i, 1))
        If Not rngFound Is Nothing Then
            rngFound.Offset(0, -1).Copy Workbooks("File2").Sheets("sheet1").Cells(i, 4)
        End If
    Next
End Sub

最新更新