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:
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