我有一张名为Assignee的表格,其中包含某些人的姓名。我有另一个名为Raw的工作表,其中包含多行包含文本字符串。我的要求是找出表单中是否有任何名称Assignee中的名称,如果是,那么该单元格中的姓氏。要指定更多内容,请参阅以下示例
受让人表包含单元格A1中的Vivek S. Panicker,A2中的John Smith和A3中的William Dezuza Margeret。原始单张A1单元格包含一个文本字符串,例如“John Smith昨晚与我见面询问William Dezuza Margeret”。这个字符串中的姓氏是“William Dezuza Margeret”,我需要使用VBA代码提取。由于这需要在多行中完成,因此高度赞赏带循环的宏。
答案 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