在列中查找匹配值并通过vlookup或地址匹配进行更新

时间:2016-06-29 07:14:49

标签: excel match vlookup matching

我对我遇到的问题有一个简单的解释。

A列:100个名称的列表(每个名称存在2次) B列:与名称相关的电子邮件地址(每个名称都有电子邮件地址)

示例:

      A1: James B1:oldmail@hotmail.com

      A10: James B10:newmail@hotmail.com

所以我想得到这个===>>

      A1:James B1:newmail@hotmail.com

基本上我想使用vlookup或adressmatch来更新电子邮件地址,当A列中的两个值匹配时。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码

注意:如果列A的每个名称只有两次

,它将起作用

如果列A名称出现一次,它将被视为B列中的新名称。

Sub test()
    Dim lastrow As Long
    Dim incre As Long
    Dim flag As String
    flag = "no"
    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    incre = 1
    ReDim names(lastrow, 2) As String
    For i = 1 To lastrow
        names(i, 1) = Range("A" & i).Value
        names(i, 2) = Range("B" & i).Value
    Next i
    For i = 1 To lastrow
        For j = i + 1 To lastrow
            If names(i, 1) = names(j, 1) Then
                flag = "yes"
                Range("C" & incre) = names(j, 1) & " Value: " & names(j, 2)
                incre = incre + 1
            End If
        Next j
        If flag = "no" Then
            Range("C" & incre) = names(i, 1) & " Value: " & names(i, 2)
        Else
            flag = "no"
        End If
    Next i
End Sub

enter image description here

enter image description here