用于查找数组中所有值是否存在于所选单元格中的宏

时间:2013-10-28 14:43:00

标签: excel vba excel-vba

我有一张名为Assignee的表格,其中包含某些人的姓名。我有另一个名为Raw的工作表,其中包含多行包含文本字符串。我的要求是找出表单中是否有任何名称Assignee中的名称,如果是,那么该单元格中的姓氏。要指定更多内容,请参阅以下示例

受让人表包含单元格A1中的Vivek S. Panicker,A2中的John Smith和A3中的William Dezuza Margeret。原始单张A1单元格包含一个文本字符串,例如“John Smith昨晚与我见面询问William Dezuza Margeret”。这个字符串中的姓氏是“William Dezuza Margeret”,我需要使用VBA代码提取。由于这需要在多行中完成,因此高度赞赏带循环的宏。

1 个答案:

答案 0 :(得分:0)

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