Excel VBA复制粘贴转置循环问题

时间:2018-08-01 14:27:33

标签: excel vba loops transpose

对于Excel中的模型,我想将数据从工作簿中的一张工作表复制并粘贴到工作簿中的另一张工作表,并使用for next循环使用此数据。来自工作文件CME的数据应粘贴到RME的工作文件中。数据的总行数为2420。但是,由于两个不同工作簿中的范围不同且步长也不同,因此我假设我应该使用两个不同的变量。当我尝试运行此代码时,它将给我一个错误。代码的第一个示例说明了如何手动执行而没有循环。此后,循环开始。非常感谢能够帮助我解决此问题的人

我想出了以下公式:

Dim i As Long
Dim j As Long

Worksheets("CME").Range("J2:J10").Copy
Worksheets("RME").Range("B2").PasteSpecial Transpose:=True

Worksheets("CME").Range("J12:J20").Copy
Worksheets("RME").Range("B3").PasteSpecial Transpose:=True

For i = 11 To 2420 Step 10
    Worksheets("CME").Range (Cells(i + 11, 10)), Cells(i + 19, 10).Copy

    For j = 3 To 2420 Step 1
    Worksheets("RME").Range(Cells(j + 1, 2)).PasteSpecial Transpose:=True
    Next j

Next i

End Sub   

1 个答案:

答案 0 :(得分:0)

我不知道您的问题是否对,但是以下代码将CME中从A1开始的范围转置为RME中从A1开始的转置范围,无论其大小如何。

Sub Transpose()

Dim Table As Range
Set Table = Worksheets("CME").Range("A1", Range("A1").End(xlDown).End(xlToRight))

For Each Cell In Table
    RowNo = Cell.Row
    ColNo = Cell.Column
    Worksheets("RME").Cells(ColNo, RowNo).Value = Cell.Value
Next

End Sub