Podział tekstu

Czasem musimy podzielić jakąś wartość tekstową na dwa osobne elementy. Poniżej przedstawiam dwa sposoby jako to zrobić. Oczywiście podaje proste przykłady wymagające być może większej rozbudowy?

W pierwszej kolejności dodajmy do arkusza – zaczynając od komórki A1 – następujące wartości:
Nazwa Miasta
Ustrzyki Dolne
Piotrowo Pierwsze
Kazimierz Dolny

Dzięki naszemu kodowi wartość tekstowa z kolumny A zostanie podzielna na kolumny B i C.

Rozwiązanie 1: odszukanie spacji w wartości tekstowej za pomocą funkcji InStr, a następnie wyodrębnienie wartości za pomocą kilku innych funkcji:

Sub SpaceSearching()
' Źródło: https://www.techonthenet.com/excel/formulas/instr.php

Dim SpaceNo, i  As Long
Dim Value1, Value2 As String
Dim CellValueDividing As Long

With ThisWorkbook.ActiveSheet

    For i = 2 To 4
        SpaceNo = InStr(1, .Cells(i, 1), " ")
        Value1 = Mid(.Cells(i, 1), SpaceNo, Len(.Cells(i, 1)) - SpaceNo + 1)
        Value2 = Left(.Cells(i, 1), SpaceNo - 1)
        .Cells(i, 2) = Value2
        .Cells(i, 3) = Value1
    Next i
    
End With

End Sub

Rozwiązanie 2: wykorzystanie tablicy oraz funkcji SPLIT aby podzielić wartość tekstową:

Sub ArraySpaceSearching()

Dim TempArray() As String
Dim i As Long

With ThisWorkbook.ActiveSheet

    For i = 2 To 4
        TempArray() = Split(.Cells(i, 1), " ")
        .Cells(i, 2) = TempArray(0)
        .Cells(i, 3) = TempArray(1)
        Erase TempArray
    Next i
    
End With

End Sub

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.