我觉得这非常简单,但出于某种原因,这在Excel中并不容易。基本上我有一组垂直值在列中从1到3运行,但它们是随机的。但是,相同的序列将每60行重复一次。我需要序列只是每60行重复一次,因为我正在处理的数据文件是成千上万行,我不想复制和粘贴那么多次。值从M2:M61开始。
是否有一个简单的VBA代码来循环此列?
或者,是否有可以做到这一点的等式?我尝试使用Index,但不要认为我正确地指定了行或列
=INDEX($M$122:$M$181,ROUNDUP(ROWS(I$122:I132)/60,0),13)
答案 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)
并填写