VBA复制粘贴循环

时间:2018-07-31 12:27:39

标签: vba loops

我想用一个循环复制粘贴数据,这可能很简单,但是我找不到正确的方法,我想通过循环解决以下范围,直到第13944行:

Range("A40:I52").Cut Range("J27")
Range("A40+26:I52+26").Cut Range("J27+26")

Range("A92:I104").Cut Range("J79")
Range("A118:I130").Cut Range("J105")
Range("A144:I156").Cut Range("J131")
Range("A170:I182").Cut Range("J157")
Range("A196:I208").Cut Range("J183")
Range("A222:I234").Cut Range("J209")
'+26 in all cases
'till 13944

1 个答案:

答案 0 :(得分:0)

Dim i as long

for i=79 to 13944 step 26
    Range(cells(i+13,1),cells(i+25,9)).cut cells(i,10)
next i

编辑:

在原始问题和下面的其他问题中,关键是找到一种优选的简单算法来构建运行指标。在第二个问题中,我们需要2个单独的索引或1个具有更多计算的索引,例如

2个索引:

Dim i as long, k as long
Dim shSrc as worksheet, shTrg as worksheet

Set shSrc=Worksheets("CME")
Set shTrg=Worksheets("RME")

k=2
For i=2 to ??? step 10
    shSrc.range(cells(i,10), cells(i+8,10)).copy 
    shTrg.cells(k,2).PasteSpecial Transpose:=True 
    k=k+1
next

1个索引:

for i=2 to ???
    shSrc.range(cells(i+(i-2)*10,10), cells(i+(i-2)*10+8,10)).copy 
    shTrg.cells(i,2).PasteSpecial Transpose:=True 
next

(我认为最好使用2个索引:)) 请注意,我是如何通过将vars用于工作表引用来减少打字的。