Необходимо массив данных перевести по принципу 1 столбец главный и привязывается к каждому значению следующему за ним и так по каждой стоке. То есть первый столбец это id фильма, а значения следом - это id тэгов, необходимо чтобы каждому фильму соответствовали свои тэги. только у меня это в цифровом формате. Как транспонировать знаю, но в данном случае похоже что нужен ВБА и создание циклов. Может вы подскажете какой цикл мне поможет? Пример таблички с объяснением прикрепляю.
Необходимо массив данных перевести по принципу 1 столбец главный и привязывается к каждому значению следующему за ним и так по каждой стоке. То есть первый столбец это id фильма, а значения следом - это id тэгов, необходимо чтобы каждому фильму соответствовали свои тэги. только у меня это в цифровом формате. Как транспонировать знаю, но в данном случае похоже что нужен ВБА и создание циклов. Может вы подскажете какой цикл мне поможет? Пример таблички с объяснением прикрепляю.vladimirr89
Sub dobav() Dim result1() Dim result2() ReDim result1(1) ReDim result2(1) For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row arr = Range(Cells(r, 1), Cells(r, Columns.Count).End(xlToLeft)).Value For i = 2 To UBound(Application.Transpose(arr)) n = n + 1 result1(n) = Cells(r, 1).Value result2(n) = arr(1, i) ReDim Preserve result1(UBound(result1) + 1) ReDim Preserve result2(UBound(result2) + 1) Next i Next Cells(4, 12).Resize(UBound(result1), 1) = Application.Transpose(result1) Cells(4, 13).Resize(UBound(result2), 1) = Application.Transpose(result2) End Sub
[/vba]
Добрый день. [vba]
Код
Sub dobav() Dim result1() Dim result2() ReDim result1(1) ReDim result2(1) For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row arr = Range(Cells(r, 1), Cells(r, Columns.Count).End(xlToLeft)).Value For i = 2 To UBound(Application.Transpose(arr)) n = n + 1 result1(n) = Cells(r, 1).Value result2(n) = arr(1, i) ReDim Preserve result1(UBound(result1) + 1) ReDim Preserve result2(UBound(result2) + 1) Next i Next Cells(4, 12).Resize(UBound(result1), 1) = Application.Transpose(result1) Cells(4, 13).Resize(UBound(result2), 1) = Application.Transpose(result2) End Sub