Na stronach stackoverflow znalazłem procedurę:
http://stackoverflow.com/questions/13195583/split-string-into-array-of-characters
Przerobiłem ją na funkcję UDF (czyli można jej używać jak funkcji tablicowej Excela, tj zaznaczyć więcej komórek, wpisać =SplitCell1(nasz_tekst), Ctrl+Shift+Enter i otrzymać w sąsiednich komórkach pojedyncze znaki/cyfry.
Public Function splitCell1(str As String) As Variant
Dim buff As Variant
ReDim buff(Len(str) - 1)
For i = 1 To Len(str)
buff(i - 1) = Mid$(str, i, 1)
Next
splitCell1 = buff
End Function
PS. Dodam tylko, jeśli są jakieś znaki oddzielające, to wystarczyłoby np:
Public Function SplitCell(rng As Range, delimit As String) As Variant
SplitCell = (Split(rng, delimit))
End Function
Mała zabawa z powyższym (niestety zwraca do wszystkich komórek wart. tekstowe:
Public Function SplitCell(rng As String) As Variant
Dim txtArray As Variant
rng = Replace(rng, Chr(34) & " " & Chr(34), Chr(34) & Chr(34))
txtArray = (Split(rng, Chr(34) & Chr(34)))
txtArray(0) = DateValue(CDate(txtArray(0)))
txtArray(3) = CCur(Replace(txtArray(3), ".", ","))
txtArray(7) = Replace(txtArray(7), Chr(34), "")
SplitCell = txtArray
End Function
Brak komentarzy:
Prześlij komentarz