在Excel中重复列列表,直到工作表结束

我觉得这是非常简单的,但由于某种原因,在Excel中这不是一件容易的事情。 基本上我有一个垂直的值集合,从1到3列不等,但它们是随机的。 然而,这个相同的序列将每60行重复一次。 我需要的顺序是每60行重复一次,因为我正在处理的数据文件是成千上万行,我不想复制和粘贴那么多次。 值从M2:M61运行。

有一个简单的VBA代码来循环这个列?

或者,有没有一个方程可以做到这一点? 我尝试使用索引,但不要以为我正确地指定行或列=INDEX($M$122:$M$181,ROUNDUP(ROWS(I$122:I132)/60,0),13)

如果你想要一些代码来做,也许这会给你一些想法。 它假定您的第一批60个值已经input到A1:A60中,并将它们读入一个数组,然后循环到循环数(我使用12000),以60为步骤复制数值。

 Sub Repeat60Rows() Dim ListArray As Variant Dim Loopcounter As Long Dim MyRange As String ListArray = Worksheets("Sheet2").Range("A1:A60").Value For Loopcounter = 1 To 12000 Step 60 MyRange = "A" & Loopcounter & ":A" & Loopcounter + 59 Worksheets("Sheet2").Range(MyRange) = ListArray Next Loopcounter End Sub 

我学到了更多,并意识到,因为这是一个60个数字的重复设置,我可以使用一个简单的=OFFSET(M62, -60, 0)公式,我可以粘贴下来。 我敢肯定,使用VBA可能会有一个更简单的方法来自动化,但是我不确定如何做到这一点。

在M182

 =OFFSET(M$121,MOD(ROW()-2,60)+1,0) 

并填写