Как разделить имя и фамилию на два столбца, когда есть 2 фамилии - PullRequest
0 голосов
/ 21 января 2020

Мне нужно разделить имя и фамилию, но мне нужны только 2 столбца и 2 фамилии, это вызывает проблему

Вот мой код, который использует текст для столбцов, но если у кого-то есть 2 фамилии Мне нужно иметь возможность поместить оба из них в столбец с фамилией вместо создания трех столбцов.


    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
    Cells.Select
    Selection.Columns.AutoFit

1 Ответ

0 голосов
/ 21 января 2020

Если у вас есть только имена в ColA, и вы предполагаете, что> 2 части назначат «дополнительные» фамилии, то:

Dim rng As Range, c As Range, v, arr


On Error Resume Next  '<< ignore the error if there's no data in ColA
Set rng = ActiveSheet.Range("A:A").SpecialCells(xlCellTypeConstants)
On Error GoTo 0       '<< stop ignoring errors

If Not rng Is Nothing Then
    For Each c In rng.Cells
        v = Trim(c.Value)
        If InStr(v, " ") > 0 Then
            arr = Split(v, " ", 2) '<< split only on the first space
            c.Resize(1, 2).Value = Array(arr(0), arr(1)) '<< populate the first and last names
        End If
    Next c
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...