Столкнулся с необходимостью выборки числового ряда, разделенного запятой (без пробелов) и тире, где запятая это разграничение чисел друг от друга, а тире это указание на минимальное значение числа (слева от тире) и максимальное (справа от тире). Все числа целые. Например: числа в ячейке B2 "75-79,109-113,138-139" будут записаны в M2 как "75;76;77;78;79;109;110;111;112;113;138;139".
П.С. Название темы не полностью отражает суть вопроса, однако попытался раскрыть главную проблему, т.к. замена "," на ";" второстепенное (как мне показалось - хотя встроенный в эксель поисковик/заменитель отказался искать запятые. Поже прочитаю отчего это он так...).
Добрый день, дамы и господа
Столкнулся с необходимостью выборки числового ряда, разделенного запятой (без пробелов) и тире, где запятая это разграничение чисел друг от друга, а тире это указание на минимальное значение числа (слева от тире) и максимальное (справа от тире). Все числа целые. Например: числа в ячейке B2 "75-79,109-113,138-139" будут записаны в M2 как "75;76;77;78;79;109;110;111;112;113;138;139".
П.С. Название темы не полностью отражает суть вопроса, однако попытался раскрыть главную проблему, т.к. замена "," на ";" второстепенное (как мне показалось - хотя встроенный в эксель поисковик/заменитель отказался искать запятые. Поже прочитаю отчего это он так...).timo64uk
Sub AAA() Dim A$(), AA$(), I&, II&, R& Columns("M").ClearContents For R = 1 To Cells(Rows.Count, 2).End(xlUp).Row A = Split(Cells(R, 2), ",") For I = 0 To UBound(A) AA = Split(A(I), "-") For II = AA(0) To AA(UBound(AA)) Cells(R, "M") = Cells(R, "M") & ";" & II Next II Next I Cells(R, "M") = Mid$(Cells(R, "M"), 2) Next R End Sub
[/vba]
[vba]
Код
Sub AAA() Dim A$(), AA$(), I&, II&, R& Columns("M").ClearContents For R = 1 To Cells(Rows.Count, 2).End(xlUp).Row A = Split(Cells(R, 2), ",") For I = 0 To UBound(A) AA = Split(A(I), "-") For II = AA(0) To AA(UBound(AA)) Cells(R, "M") = Cells(R, "M") & ";" & II Next II Next I Cells(R, "M") = Mid$(Cells(R, "M"), 2) Next R End Sub