excel如何设置宏循环?代码不会编

如图1,工作表1假设有三列数据,每个数据都是随着参数重新计算而变化的,我需要把每一次重新计算之后更新的数据复制到工作表2中,如图2,并且在复制了多次之后,再总体将工作表2的数据复制到工作表3,如图3。我想要调用宏来自动计算第一次复制的过程,也就是工作表1到2的过程。之后自动粘贴到工作表3,可是由于宏代码有限,复制次数到了一定程度就会崩溃,没法调用宏了,所以想问问如何用循环的方式来实现工作表1到2的过程,这样就不用太长的代码了,现在自己一次次复制粘贴的宏代码如网盘链接: https://pan.baidu.com/s/1Z4l3MfjhA7anGD4ok7iLYQ 提取码: fnkb 复制这段内容后打开百度网盘手机App,操作更方便哦

还不明白你意思,这否是这样,表1单元格A1:C3,复制到表2中从A:C列中,复制到A1:C3,然后空一行,A4:C7,再空一行,复制到A9:C11,一直到最行一行止,然再空列D,再从E:G列开始复制,按A:C这样。先行后列循环复制,然后需把表2内容复制到表3中。追问

你说的也看不懂,不过应该不是那样。重新计算的只有工作表1,那里的数据是公式控制的。重新计算一遍后,把整组数据复制到工作表2,在工作表2里面,是有一定格式的,假设每组数据相隔57行,这样复制8次,也就是说此时工作表2有8组不同的数据,每组相隔57行。然后保持格式全部复制到工作表3,然后删除工作表2全部数据,至此一个循环结束,重复前面的复制,直到把工作表2的数据全部复制到工作表3,与之前的数据组间隔3列,如图。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-20
Sub 复制()
Dim i&, j&
Sheets("1").Activate
For i = 0 To 2
Sheets("2").Cells(1 + i * 4, 1).Resize(3, 3) = Cells(1, 1).Resize(3, 3).Value
Next i
End Sub追问

该段代码没有计算工作表1的,只是单纯复制1的数据到2。另外如何这些参数代表的意思不懂,我还需要根据间隔的行列数不同而修改代码,,,,另外,还需要将工作表2的数据复制到工作表3,这里面代码也没有呢。。。。。它起到的循环是在哪里?

追答

计算你自己补上,因为不清楚你的单元格选择不同区域与计算有没有关系。
你弄清楚for循环内的几个数字,就能改成你自己需要的啦!然后2表到3表同样的道理。

追问

大概搞懂了,我还想问的是,在宏里面,继续调用i,怎么会不行,难道又要再定义一次i段的代码吗?我想要重复调用i段代码来实现循环,不是直接next i就可以调用了吗??

本回答被提问者采纳
第2个回答  2019-07-21
Sub test()
For i =2 to 100
For j=1 to 3
If j=3 then
Cells(i ,j)=Cells(i-1,j)+Cells(i-1,1)
Else
Cells(i,j)=Cells(i-1,j)+Cells(i-1.j+1)
End if
Next
next
end sub追问

计算代码语法有问题,已修正。但是运算跑偏了,计算的工作表1,不知是何情况

第3个回答  2019-07-17
下载了,BAS无法打开追问

是在excel编辑宏时候,导入文件才行

相似回答