【发布时间】:2020-03-19 12:13:42
【问题描述】:
基本上,我在三列中有数据,在单独的选项卡上有一个模型。数据选项卡有 1000 行数据,每个条目都将在模型中运行,结果将粘贴到第四列。
这是一次迭代的样子,但我需要它遍历每一行。
Worksheets("Data").Range("E2:G2").Copy _
Worksheets("Model").Range("B4:D4").PasteSpecial Paste:=xlPasteValues
Calculate
Worksheets("Model").Range("C120").Copy_
Worksheets("Data").Range("H2").PasteSpecial Paste:=xlPasteValues
Worksheets("Model").Range("C121").Copy_
Worksheets("Data").Range("I2").PasteSpecial Paste:=xlPasteValues
Worksheets("Model").Range("C122").Copy_
Worksheets("Data").Range("J2").PasteSpecial Paste:=xlPasteValues
然后我们会从“数据”选项卡中复制下一行数据(即范围 E3:G3)。
这似乎是一个经典的循环场景,但我不知道如何用 VBA 编写它。
【问题讨论】:
-
旁注:删除那些续行...
_不应出现在此代码 sn-p 中的任何位置,因为Copy是一行,PasteSpecial是新行。 -
你为什么不试试看?循环上有很多。
-
此外,由于您只需要值,而不是格式/公式等,因此您可以将范围设置为相等,而不是使用
.Copy:Range([destination range]).Value = Range([original data range]).Value。另外,what have you tried? -
你能添加一些示例数据吗?不清楚您是要运行模型、复制结果然后再次运行模型并复制相同的结果范围,还是您有一张包含多个结果集并用空格分隔的工作表。