У меня есть список с несколькими именами, однако некоторые имена имеют несколько фамилий: Пример. «Эдди ван Хален. Я не могу вывести мой код:« Ван Хален, Эдди », вместо этого он выдает:« Ван, Эдди »
Был бы способ проверить, содержит ли names () более 2 частей, и если да, включить в качестве фамилии имена (1) и имена (2) вместо проверки на "van". То есть, если фамилия включает в себя другие части, такие как «де».
Дополнительно, если полное имя не состоит из нескольких частей, например: "волонтер", код должен пропустить это имя.
Вот мой текущий код:
Sub Filter()
Dim r As Range
Dim c As Range
Dim names() As String
Dim lastrow As Long
lastrow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
With ActiveSheet
Set r = .Range("K3:K" & lastrow)
For Each c In r
names = Split(c.Value, " ")
If IsEmpty(c.Value) Then Exit Sub
ElseIf InStr(c.Value, "van") > 0 Then
c.Value = names(1) & names(2) & ", " & names(0)
Else
c.Value = names(1) & ", " & names(0)
End If
Next c
End With
End Sub