VBA – 复制两列代码的一行

我的代码行是这样的

Worksheets("Calculator").Range("AB6:AB16", "AS7").Copy .Cells(1, i).PasteSpecial Paste:=xlPasteValues 

我希望能够复制“AB6:AB16”和只有“AS7”单元格。 所以我的输出将是AB6 AB7 AB8 AB9 AB10等等,直到AB16 .. ..最后,我只是想单元格AS7 ..

我目前的情况是副本,所有的列到AS,包容性和我的可取的产出是上面描述的方式。

在这行代码之前,我从2行代码中得到的输出,一个复制“AB6:AB16”,另一个复制“AS7”,只是给了我错误的结果(有一个rand()函数,生成在AS中调用计算的数字。

而且我在尝试了代码的各种结构之后意识到,只有在一行中才能正确复制数据。

正如我在你的评论中所理解的那样,每当你使用类似的东西时,你需要循环并改变它

 Application.Calculation = xlCalculationManual For i = 1 to 1000 With Worksheets("Calculator") .Range("AB6:AB16").Copy .Cells(1, i).PasteSpecial Paste:=xlPasteValues .Range("AS7").Copy .Cells(12, i).PasteSpecial Paste:=xlPasteValues End with Application.Calculate Next i Application.Calculation = xCalculationAutomatic 

完全没有经过testing,但想法是在那里。

编辑

如果你正在循环列,只要注意有多less列可用,如果你循环10000次,取决于你的Excel版本,你可能会用完(例如,2016年有16384列我相信)。

另外,如果您粘贴到您的函数“计算器”相同的表,您将立即覆盖您的rand()函数,只要你点击第28列。