У меня есть этот код, который создает всеобъемлющий массив на основе диапазона набора данных Data
.
Я хочу, чтобы он транспонировал блоки строк (всегда каждые две строки Step -2
) и помещал следующий блок точно так же, как offset(1)
из того, что был в последний раз транспонирован.
Например: Rows 2-3
будет в E1:D134
, rows 4-5
будет в E135:D169
и т. Д.
Этот код использовал для печати отдельных массивов на листах и сохранения их, но я немного обрезал его, чтобы он напечатал первые две транспонированные строки (до двух столбцов), начиная с E1, и затем следующие две строки снизу будут смещены к следующей доступной точке внизу в столбцах E: D.
Option Explicit
Sub Main()
Dim wb As Workbook
Dim Data, Last, Mgr
Dim i As Long, j As Long, k As Long, a As Long
Dim Dest As Range
Set wb = ThisWorkbook
Set Dest = wb.Sheets("Sheet2").Range("E1")
With ThisWorkbook.Sheets("Sheet3")
Data = .Range("ed2", .Range("A" & Rows.Count).End(xlUp))
End With
wb.Activate
Application.ScreenUpdating = False
For i = 1 To UBound(Data)
If Data(i, 1) <> Last Then
If i > 1 Then
Dest.Select
End If
Last = Data(i, 1)
j = 0
End If
a = 0
For k = 1 To UBound(Data, 2)
Dest.Offset(a, j) = Data(i, k)
a = a + 1
Next
j = j + 1
Next
End Sub
Как бы я обозначил это на основе приведенного выше кода?