Attribute VB_Name = "udf_strChunk" '------------------------------------------------------------------------------- 'File : udf_strChunk.bas ' Copyright mpl by ERB software ' All rights reserved ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/strChunk 'Environment : VBA 2010 + 'Version : 1.0.0 'Name : strChunk 'Author : Stefan Erb (ERS) 'History : 02.06.2014 - ERS - Creation '------------------------------------------------------------------------------- Option Explicit '/** ' * Zerteilt ein String in eine Anzahl Teile ' * @param String String, der zerlegt werden soll ' * @param Integer Anzahl Teile ' * @return Array ' */ Public Function strChunk(ByVal iString As String, ByVal iCount As Integer) As String() If Len(iString) = 0 Then Exit Function Dim size As Integer: size = (Len(iString) \ iCount + IIf(Len(iString) Mod iCount > 0, 1, 0)) Dim retArr() As String: ReDim retArr(iCount - 1) Dim i As Integer: For i = 0 To iCount - 1 retArr(i) = Mid(iString, (i * size) + 1, size) Next i 'Wenn der letzte Teil leer ist, den Zweitletzten Teil aufteilen 'zB len(iString) = 4, iCount=3 'Wenn der 2t letzte Eintrag bereits nur ein Zeichen lang ist, dann ist halt der letzte dann leer i = iCount - 1 If retArr(i) = Empty And Len(retArr(i - 1)) > 1 Then Dim corr() As String: corr = strChunk(retArr(i - 1), 2) retArr(i - 1) = corr(0) retArr(i) = corr(1) End If strChunk = retArr End Function