我对我遇到的问题有一个简单的解释。
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列中的两个值匹配时。
我该怎么做?
答案 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