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

时间:2014-12-13 01:25:36

标签: excel vba excel-vba

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

是否有一个简单的VBA代码来循环此列?

或者,是否有可以做到这一点的等式?我尝试使用Index,但不要认为我正确地指定了行或列 =INDEX($M$122:$M$181,ROUNDUP(ROWS(I$122:I132)/60,0),13)

3 个答案:

答案 0 :(得分:1)

如果你想要一些代码来做,也许这会给你一些想法。它假设您的第一批60个值已经输入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

答案 1 :(得分:1)

我学到了更多并且意识到,因为这是一组重复的60个数字,我可以使用一个简单的=OFFSET(M62, -60, 0)公式,我可以粘贴下来。我确信使用VBA可能更容易实现自动化,但我不确定如何做到这一点。

答案 2 :(得分:0)

在M182中

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

并填写