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