Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2007 VBA-使用VLOOKUP在不同工作表中查找值,并将结果存储在活动工作表中_Excel_Vba - Fatal编程技术网

Excel 2007 VBA-使用VLOOKUP在不同工作表中查找值,并将结果存储在活动工作表中

Excel 2007 VBA-使用VLOOKUP在不同工作表中查找值,并将结果存储在活动工作表中,excel,vba,Excel,Vba,我是这个小组和VBA的新手 我有一个工作表“T2”,行数可变。从第3行开始,我想查找“E”列中的项目编号和搜索工作表“支持”。项目编号可在“支持”的“A”列中找到。我需要将“B”列中的值作为支持(与该项目编号相关),并将其存储在工作表“T2”的“A”列中。然后我想对'T2'中的每一行重复这个过程,直到并包括最后一行 有人能帮我吗,因为我根本不能让它工作 感谢Vlookup部分,这应该是您所需要的 Sub with_some_name Dim result As String With Wor

我是这个小组和VBA的新手

我有一个工作表“T2”,行数可变。从第3行开始,我想查找“E”列中的项目编号和搜索工作表“支持”。项目编号可在“支持”的“A”列中找到。我需要将“B”列中的值作为支持(与该项目编号相关),并将其存储在工作表“T2”的“A”列中。然后我想对'T2'中的每一行重复这个过程,直到并包括最后一行

有人能帮我吗,因为我根本不能让它工作


感谢Vlookup部分,这应该是您所需要的

Sub with_some_name

Dim result As String

With Worksheets("T2")
result = Application.WorksheetFunction.VLookup(.Range("e3"), Worksheets("support").Range("A:B"), 2, False)
Range("A3").Value = result
End With

end sub

使用字典的变体:

Sub Test1()
    Dim Dic As Object, key As Variant, oCell As Range, i&
    Dim w1 As Worksheet, w2 As Worksheet

    Set Dic = CreateObject("Scripting.Dictionary")
    Set w1 = Sheets("Support")
    Set w2 = Sheets("T2")

    i = w1.Cells(Rows.Count, "A").End(xlUp).Row

    For Each oCell In w1.Range("A1:A" & i)
        If Not Dic.exists(oCell.Value) Then
            Dic.Add oCell.Value, oCell.Offset(, 1).Value
        End If
    Next

    i = w2.Cells(Rows.Count, "E").End(xlUp).Row

    For Each oCell In w2.Range("E3:E" & i)
        For Each key In Dic
            If oCell.Value = key Then
                oCell.Offset(, -4).Value = Dic(key)
            End If
        Next
    Next
End Sub
使用vlookup的变体:

Sub Test2()
    Dim oCell As Range
    Dim w1 As Worksheet, w2 As Worksheet

    Set w1 = Sheets("Support")
    Set w2 = Sheets("T2")

    i = w2.Cells(Rows.Count, "E").End(xlUp).Row
On Error Resume Next
    For Each oCell In w2.Range("E3:E" & i)
        oCell.Offset(, -4).Value = WorksheetFunction.VLookup(oCell.Value, w1.[A:B], 2, 0)
    Next
End Sub
使用查找方法的变量:

Sub Test3()
    Dim oCell As Range
    Dim w1 As Worksheet, w2 As Worksheet

    Set w1 = Sheets("Support")
    Set w2 = Sheets("T2")

    i = w2.Cells(Rows.Count, "E").End(xlUp).Row
On Error Resume Next
    For Each oCell In w2.Range("E3:E" & i)
        oCell.Offset(, -4).Value = w1.Cells(w1.Columns(1).Find(oCell.Value).Row, 2).Value
    Next
End Sub
输出结果


请粘贴到目前为止的代码和任何错误消息。您好,谢谢您的回复,但我无法使其正常工作。运行任何这些后,表T2上没有显示任何内容。在第二个观点(VLookup)中,我得到了运行时错误1004,应用程序定义的或对象定义的错误。我在我的尝试中得到了很多。@tommill请在我的帖子中显示您的数据样本作为输出结果,以清楚地了解您的评论背后的问题嗨,谢谢您的回复,但它并没有起作用。这也会得到错误“1004”处理(如上所述)。