Excel 宏复制和转置数据到其他有特殊条件的工作簿
Excel Macro copy and transpose data to other workbook with special condition
我对宏还是个新手。我在第一个工作簿中有数据,一个 column.I 中有 300 行数据,需要将每 6 行数据转置到其他工作簿中的 6 列。
例如,来自 A1:A6 的数据必须转置为 A1:F1。同样来自 A7:A14 的数据必须转置为 A2:F2.
我有这个代码。数据保存在数组
中的vDB中
Dim vDB
vDB = rsData.getRows
TargetRange.Cells(1, 1).Resize(UBound(vDB, 1) + 1, UBound(vDB, 2) + 1) = vDB
使用此代码,我可以将数据复制和转置到其他工作簿。但它只适用于从一列到一行。我找不到每 6 行到 6 列的方法。
有没有办法用我上面的代码将每 6 行的数据转置为 6 列?感谢您的帮助。
不需要GetRows
。获取 RecordSet rsData
后,使用此代码:
Dim i As Long
Do Until rsData.EOF
targetRange.Cells(1 + Int(i / 6), 1 + i Mod 6).value = rsData.Fields(0).value
i = i + 1
rsData.MoveNext
Loop
我对宏还是个新手。我在第一个工作簿中有数据,一个 column.I 中有 300 行数据,需要将每 6 行数据转置到其他工作簿中的 6 列。 例如,来自 A1:A6 的数据必须转置为 A1:F1。同样来自 A7:A14 的数据必须转置为 A2:F2.
我有这个代码。数据保存在数组
中的vDB中Dim vDB
vDB = rsData.getRows
TargetRange.Cells(1, 1).Resize(UBound(vDB, 1) + 1, UBound(vDB, 2) + 1) = vDB
使用此代码,我可以将数据复制和转置到其他工作簿。但它只适用于从一列到一行。我找不到每 6 行到 6 列的方法。 有没有办法用我上面的代码将每 6 行的数据转置为 6 列?感谢您的帮助。
不需要GetRows
。获取 RecordSet rsData
后,使用此代码:
Dim i As Long
Do Until rsData.EOF
targetRange.Cells(1 + Int(i / 6), 1 + i Mod 6).value = rsData.Fields(0).value
i = i + 1
rsData.MoveNext
Loop