使用递增21的行将行复制到不同的列

时间:2013-04-04 16:23:52

标签: excel excel-vba ms-office vba

我想将我的数据从不同的行复制到其他列。 实施例。

B4 has to be copied to H129 ,
B25 to H130,
B46 to H131...and so on ..

这里的行增加了21行。

如何在excel中做到这一点?

3 个答案:

答案 0 :(得分:0)

转到VBA并:

Sub sdgfsa()

    Dim i As Integer
    Dim j As Integer

    j = 129
    For i = 4 To 1000 Step 21 'put the end number you want, the start is 4 like your example
        Plan1.Cells(j, 8).Value = Plan1.Cells(i, 2).Value 'Here, plan1 represents the sheet, 2 is B column, 8 is H column
        'or you can use KazJaw's Copy here
        j = j + 1 'j gets incremented
    Next
End Sub

答案 1 :(得分:0)

当你需要复制所有(也就是...值和格式)而不是这样:

Range("B4").Copy Range("H129")

使用@Daniel代码,你可能需要在循环中使用这样的东西

'...see Daniel answer for beginning
Plan1.Cells(i, 2).Copy Plan1.Cells(j, 8)
'... and so on

答案 2 :(得分:0)

在单元格H129中输入以下公式:

=INDIRECT("b"&(ROW(H129)-129)*21+4)

然后使用“Fill Down”将公式从此单元格复制到其下方的单元格中。

这是因为“H129”引用会在复制时更改为H130,H131等,因此ROW()函数将连续返回更高的数字。

修改

更正公式以匹配相关示例。