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.
nasze przykładowe dane wyglądają tak:
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:

