如何搜索某个值并使用VBA将结果复制到其他工作表

时间:2017-09-25 09:12:26

标签: excel vba excel-vba

我正在尝试编写VBA代码。 我在Excel中有2个工作表:

第一张:“包含我所有工作结果的初始结果”

第二张:“结果标签”

我正在尝试在名为Id的第一行中找到某个值,在Id列中找到两个特定ID号(86和66)并复制结果(位于右侧的两列)特定单元格中的第二张表。

example

谢谢你们!

1 个答案:

答案 0 :(得分:0)

试试这个

Sub Demo()
    Dim srcSht As Worksheet, destSht As Worksheet
    Dim srcLR As Long, destLR As Long
    Dim cel As Range, srcRng As Range

    Set srcSht = ThisWorkbook.Sheets("Results for init")
    Set destSht = ThisWorkbook.Sheets("Result Tab")

    With srcSht
        srcLR = .Cells(.Rows.Count, "C").End(xlUp).Row  'get last row with data in srcSht using Column C
        Set srcRng = .Range("C2:E" & srcLR)             'set range for look up
    End With

    With destSht
        destLR = .Cells(.Rows.Count, "A").End(xlUp).Row 'get last row with data in destSht using Column A

        For Each cel In .Range("A2:A" & destLR)         'loop through each cell in Column a of destSht
            cel.Offset(0, 1).Value = WorksheetFunction.VLookup(cel, srcRng, 3, False)   'get vlookup result
        Next cel
    End With
End Sub

enter image description here

使用公式解决方案:

假设您的数据位于工作表Results for init中,则在工作表Cell B2的{​​{1}}中输入以下公式

Result tab

=VLOOKUP(A2,'Results for init'!$C$2:$E$10,3,FALSE)

根据需要拖动/复制公式。根据您的数据更改范围=INDEX('Results for init'!$E$2:$E$10,MATCH(Sheet3!A2,'Results for init'!$C$2:$C$10,0)) 。见图片以供参考。

结果标签

enter image description here