1

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

受让人表在单元格 A1 中包含姓名 Vivek S. Panicker,在 A2 中包含姓名 John Smith,在 A3 中包含姓名 William Dezuza Margeret。原始工作表 A1 单元格包含一个文本字符串,例如“John Smith 昨晚遇到我来询问 William Dezuza Margeret”。这个字符串中的最后一个名字是“William Dezuza Margeret”,我需要使用 VBA 代码来提取它。由于这需要在多行中完成,因此非常感谢带有循环的宏。

4

1 回答 1

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
于 2013-10-28T15:11:15.353 回答