Разбить диапазон и транспонировать его на следующий лист - VBA

Узнай цену своей работы

Формулировка задачи:

Дорогие, только недавно пришлось взяться за vba, опыта мало, поэтому возникли некоторые проблемы. Мне необходимо разбить диапазон A5:С & неопределенная размерность, на 16000 и транспонировать их на другой лист со смещением, допустим на 1 строку. То есть строк может быть и менее 16000 и более, вот если более, то необходимо разбивать диапазон и транспонировать циклом. Подскажите, как это сделать, через for и обратный step? Может есть у кого похожий код? Прикладываю пример, там разбитие всего по 8 клеток, ну мне главное суть понять, как это делать. И код транспонирования диапазона до 16000. Буду рад любой помощи. Заранее благодарен.

Решение задачи: «Разбить диапазон и транспонировать его на следующий лист»

textual
Листинг программы
Sub Tr()
Const N& = 8 'размер куска
Dim i&, j&, k&, lr&
  With Worksheets("Example")
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row   'номер посл. строки
    j = -3
    For i = 5 To lr Step N
      j = j + 6                                 'очередной номер строки в Result
      k = WorksheetFunction.Min(N, lr - i + 1)  'размер текущего куска
      Worksheets("Result").Cells(j, 1).Resize(3, k) = WorksheetFunction.Transpose(.Cells(i, 1).Resize(k, 3))
    Next
  End With
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы