Private Sub ПримерИспользования_ParseColumnsStringEx()
Dim txt$, txt1$, txt2$
' исходная строка с номерами столбцов (c ошибками ввода)
txt$ = "4-4 , -a- C;8,Я-7,-11-9-F, Е --К; 4,21-,6-F"
' получаем массив столбцов
arr = ParseColumnsStringEx(txt)
' выводим список столбцов: 4,1,2,3,8,7,11,10,9,8,7,6,5,6,7,8,9,10,11,4,21,6,
For i = LBound(arr) To UBound(arr): Debug.Print arr(i) & ",";: Next i: Debug.Print
' ======================================
' или, например, такая строка
txt$ = "4-5,8 -k, 6-5;a,e,3,4, 46-BA"
' получаем массив столбцов (c «промежуточными» значениями)
arr2 = ParseColumnsStringEx(txt, txt1, txt2)
Debug.Print txt1 ' выводит 4-5;8-K;6-5;A;E;3;4;46-BA
Debug.Print txt2 ' выводит 4-5,8-11,6-5,1,5,3,4,46-53
columnsList$ = Join(arr2, ",")
Debug.Print columnsList$ ' выводит 4,5,8,9,10,11,6,5,1,5,3,4,46,47,48,49,50,51,52,53
End Sub