Список значений, найденных в строке (функция или VBA) - PullRequest
0 голосов
/ 12 января 2019

У меня проблема с Excel. У меня есть список писем. В этих сообщениях я хочу найти конкретные данные (номера счетов) и перечислить их в следующих столбцах (если они найдены), просто записав их имена. Список учетных записей, которые я хочу найти, находится в другой электронной таблице («список учетных записей»).

Могу ли я сделать это с помощью некоторой простой функции (формулы массива на моем компьютере работают очень медленно и могут заставить мой excel «не отвечать») или с помощью кода VBA?

Ниже приведена ссылка на файл Excel с некоторыми примерами данных.

Буду очень признателен за помощь и совет! К сожалению, я не могу найти решение этой проблемы ... https://uploadfiles.io/pfizs Ссылка на файл Excel

С уважением, Mike

Дорогие все, Я получил решение, которым хочу поделиться с вами:

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
...