Sub test() Dim i&, ii&, a(), yes a = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value For i = 1 To UBound(a) For Each yes In Split(a(i, 2), ",") ii = ii + 1 Cells(ii, 4).Value = a(i, 1) Cells(ii, 5).Value = yes Next Next End Sub
[/vba]
[vba]
Код
Sub test() Dim i&, ii&, a(), yes a = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value For i = 1 To UBound(a) For Each yes In Split(a(i, 2), ",") ii = ii + 1 Cells(ii, 4).Value = a(i, 1) Cells(ii, 5).Value = yes Next Next End Sub
?По Вашему примеру можно формулами сделать, но потом не окажется, что все не так, как в примере? Поэтому макросом [vba]
Код
Sub tt() c_ = 1 c1_ = 4 r0_ = 1 n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1 ar0 = Cells(r0_, c_).Resize(n_, 2) For i = 1 To n_ ar0(i, 2) = Split(ar0(i, 2), ",") k_ = k_ + UBound(ar0(i, 2)) + 1 Next i Dim ar ReDim ar(1 To k_, 1 To 2) For i = 1 To n_ For j = 0 To UBound(ar0(i, 2)) z_ = z_ + 1 ar(z_, 1) = ar0(i, 1) ar(z_, 2) = ar0(i, 2)(j) Next j Next i Cells(r0_, c1_).Resize(Cells(Rows.Count, c1_).End(3).Row, 2).ClearContents Cells(r0_, c1_).Resize(z_, 2) = ar End Sub
[/vba] реальные данные проще всего будет вставить в этот файл и нажать кнопку
?По Вашему примеру можно формулами сделать, но потом не окажется, что все не так, как в примере? Поэтому макросом [vba]
Код
Sub tt() c_ = 1 c1_ = 4 r0_ = 1 n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1 ar0 = Cells(r0_, c_).Resize(n_, 2) For i = 1 To n_ ar0(i, 2) = Split(ar0(i, 2), ",") k_ = k_ + UBound(ar0(i, 2)) + 1 Next i Dim ar ReDim ar(1 To k_, 1 To 2) For i = 1 To n_ For j = 0 To UBound(ar0(i, 2)) z_ = z_ + 1 ar(z_, 1) = ar0(i, 1) ar(z_, 2) = ar0(i, 2)(j) Next j Next i Cells(r0_, c1_).Resize(Cells(Rows.Count, c1_).End(3).Row, 2).ClearContents Cells(r0_, c1_).Resize(z_, 2) = ar End Sub
[/vba] реальные данные проще всего будет вставить в этот файл и нажать кнопку_Boroda_