VBA / EXCEL: Rozdzielenie imienia i nazwiska z jednej kolumny na dwie

Często pojawiającym się problemem, podczas pracy z Excelem jest rozdzielanie imienia od nazwiska, czy też dowolnie innego ciągu znaków. Można to wykonać na kilka sposobów, ja jednak rozwiąże ten problem posługując się językiem programowania VBA.

Thank you for reading this post, don't forget to subscribe!

nasze przykładowe dane wyglądają tak:

imiona i nazwiska połączone

Jak widzimy w jednej komórce znajduje się imię i nazwisko. Aby je rozdzielić do osobnych komórek wpisujemy poniższy kod:

Sub separate_names()
'deklarowanie zmiennych
Dim text As String 'zmienna text do  przechowywania imienia i nazwiska
Dim place As Integer ' zmienna place do sprawdzenia na którym miejscu występuje spacja
Dim kom1 As Range ' zmienna kom1 jako zakres

'rozpoczynamy pętlę gdzie w zamiast 'b2:b14' wpisujemy zakres własnych danych
For Each kom1 In Range("b2:b14")

'sprawdzenie tylko komórki które nie są puste w zawartym zakresie
    If kom1 <> Empty Then
    text = kom1.Value ' przypisanie zmiennej text imienia i nazwiska
    place = InStr(text, " ") 'odszukanie pozycji spacji miedzy imieniem i nazwiskiem
    kom1.Offset(0, 1).Value = Left(text, place) 'zwraca ciąg znaków od lewej strony do spacji (czyli w tym przypadku imię) i wpisuje je w pierwsza kolumnę obok, czyli kolumnę "C"
    kom1.Offset(0, 2).Value = Mid(text, place + 1) 'zwraca ciąg znaków, który jest za spacją (czyli nazwisko) i wpisuje je w druga kolumnę obok czyli kolumnę "D"
    End If

'skok do kolejnego elementu
Next kom1

End Sub

Myślę, że komentarze do kodu są wyczerpujące i nie ma potrzeby dalszego kontynuowania tematu.:)
Oto wynik programu:
imie i nazwiko podzielone