macros来查找数组中的所有值是否存在于选定的单元格中

我有一张名为Assignee的表,其中包含某些人的姓名。 我有另一个名为Raw的工作表,其中包含多行包含文本string。 我的要求是找出工作表Assignee中的任何名称是否出现在单元格中,如果是,那么这是哪个单元格中的最后一个名字。 要指定更多,请参见下面的示例,

受让人表格包含A1格式的Vivek S. Panicker,A2的John Smith和A3格式的William Dezuza Margeret。 原料A1单元包含一个文本string,如“约翰史密斯昨晚遇到我问询威廉Dezuza Margeret”。 这个string中的姓氏是“William Dezuza Margeret”,我需要使用VBA代码进行提取。 由于这需要在多行中完成,因此具有循环的macros是高度赞赏的。

Function LastUsedName(rng As Range) As Variant Dim names As Variant names = Sheets("Assignee").Range("A1:A" & Sheets(2).Range("A" & Rows.Count).End(xlUp).Row) Dim v As Variant For Each v In names If InStr(1, rng, v, vbTextCompare) Then Dim pos As Long pos = InStrRev(rng, v, -1, vbTextCompare) LastUsedName = Mid(rng, pos, Len(v)) Exit Function End If Next End Function