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: