Excel 匹配常用值并复制到相应单元格的脚本

Excel Script to match common values and copy to the corresponding cell

我见过类似的问题,但不是我一直坚持的问题。

以上是我正在处理的数据示例。

电子邮件地址的左栏 (E) 很长 10,000+ 并且没有特定的顺序,与它对应的国家 (F)。
电子邮件地址 (H) 的右列只是大小的一小部分,但它包含许多重复值。

我需要将 E 中的所有值与 H 中的所有值进行比较,如果匹配则复制 [=24] 中的值=]F到I.

中对应的值

我查看了 Vlookup、VBA 脚本和 if 公式,但我无法理解我需要在这里做什么。任何帮助将不胜感激。

请和谢谢。

请尝试下一个代码。它使用数组并且主要在内存中工作应该非常快:

Sub ExtractMatchingCountry()
 Dim sh As Worksheet, lastRowE As Long, lastRowH As Long, arrEF, arrHI, i As Long, j As Long
 
 Set sh = ActiveSheet
 lastRowE = sh.Range("E" & sh.rows.count).End(xlUp).Row 'last cell in E:E
 lastRowH = sh.Range("H" & sh.rows.count).End(xlUp).Row 'last cell in H:H
 
 arrEF = sh.Range("E2:F" & lastRowE).value 'place the range in an array for faster iteration/processing
 arrHI = sh.Range("H2:I" & lastRowH).value 'place the range in an array for faster iteration/processing
 
 For i = 1 To UBound(arrEF)
    For j = 1 To UBound(arrHI)
        If arrEF(i, 1) = arrHI(j, 1) Then
            arrHI(j, 2) = arrEF(i, 2): Exit For
        End If
    Next j
 Next i
 'drop the processed array content to the range:
 sh.Range("H2").Resize(UBound(arrHI), 2).value = arrHI
End Sub

是否有可能要比较的字符串看起来相同但有些字母是大写而不是小写?如果是这样,我也可以调整代码来处理这种情况。现在,它比较 相同的字符串 。我的意思是“john.doe@yahoo.com”与“John.doe@yahoo.com”不一样...