Vba: jak podzielić ciąg znaków na podstawie wielu ograniczników


Aby podzielić ciąg znaków na podstawie wielu ograniczników w VBA, możesz użyć następującej podstawowej składni:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

W tym konkretnym przykładzie każdy ciąg z zakresu A2:A7 jest dzielony na podstawie łączników lub spacji w każdym ciągu, a następnie przypisuje powstałe elementy każdego ciągu do sąsiednich komórek w kolumnach B, C i D.

Uwaga : to makro najpierw zastępuje każdy łącznik spacją, a następnie dzieli każdy ciąg znaków na podstawie miejsca, w którym znajdują się spacje.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Podziel ciąg znaków na podstawie wielu ograniczników w VBA

Załóżmy, że mamy następującą listę nazw w Excelu:

Załóżmy, że chcemy podzielić każdą nazwę na podstawie łączników lub spacji, a następnie przypisać powstałe elementy każdego ciągu do nowych komórek.

W tym celu możemy utworzyć następujące makro:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Ciąg podzielony VBA na podstawie wielu ograniczników

Należy zauważyć, że to makro dzieli każdy ciąg w kolumnie A na podstawie spacji i łączników oraz wyświetla poszczególne elementy tekstowe każdego ciągu w kolumnach B, C i D.

Uwaga nr 1: W tym przykładzie dzielimy ciągi znaków na podstawie łączników i spacji, ale można dzielić ciągi na podstawie dowolnych ograniczników, określając je w funkcjach Zamień i Podziel .

Uwaga nr 2 : Pełną dokumentację funkcji VBA Split znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania przy użyciu języka VBA:

VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak liczyć komórki zawierające określony tekst

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *