我对Excel有问题。 我有一封电子邮件清单。在这些消息中,我想查找特定的数据(帐号),并通过写下它们的名称在下一列(如果找到)中列出它们。 我要查找的帐户列表在另一个电子表格中(“帐户列表”)。
我可以通过一些简单的功能(数组公式在我的PC上运行很慢,并使我的excel无法响应)还是VBA代码吗?
请在下面找到带有一些示例数据的excel文件的链接。
我将非常感谢您的帮助和建议!不幸的是,我找不到解决此问题的方法... https://uploadfiles.io/pfizs Link to excel file
亲切的问候, 迈克
亲爱的, 我收到了一个解决方案,想与您分享:
Sub FindAccount()
Application.ScreenUpdating = False
Dim ws1 As Worksheet, ws2 As Worksheet, rng1 As Range, rng2 As Range
Set rngList = CreateObject("Scripting.Dictionary")
Set ws1 = Sheets("sample messages")
Set ws2 = Sheets("account list")
Dim i&, v1 As Range, v2 As Range, fn
Set v1 = ws1.Range("F2", ws1.Range("F" & Rows.Count).End(xlUp))
Set v2 = ws2.Range("A1", ws2.Range("A" & Rows.Count).End(xlUp))
For Each rng2 In v2
For Each rng1 In v1
If InStr(1, rng1, rng2) > 0 Then
ws1.Cells(rng1.Row, 7) = Trim(Mid(ws1.Cells(rng1.Row, 7) & ", " & rng2, 2, 9999))
End If
Next rng1
Next rng2
Application.ScreenUpdating = True
End Sub