【发布时间】:2016-06-09 01:09:56
【问题描述】:
Sub Test()
Dim x As Integer
For x = 1 To 1000
Sheets("Test1").Range(Cells(x, 1), Cells(x, 10)).Select
Sheets("Test2").Cells(5, 16).PasteSpecial Paste:=xlValues, Transpose:=True
Next
End Sub
这是我的宏, 此宏的用途,将工作表测试 1 中的范围“Ax:Jx”复制到工作表测试 2 中的范围“P5:P14”
注意:我想运行 1000 个场景以查看对某些结果的影响。所以第一步,我为你在上面看到的场景创建循环宏。
我被困在 "Sheets("Test1").Range(Cells(i, 1) & Cells(i, 10)).Select" 。如何定义这个范围,以便它可以像 x 循环一样循环。
【问题讨论】:
-
我相信这里缺少很多东西。您正在将变量范围复制到固定范围中。选择一个范围并复制到另一个范围不需要循环。所以我在这里看到了一些矛盾。这可能是您遇到问题的原因。你能更清楚地定义你要解决的问题吗?
-
我想运行 1000 个场景,看看对某些结果的影响。所以第一步,我为场景创建循环宏,如上所示。所以我需要在那里循环。这就是我被困在这里的原因。
-
我不明白你的问题。你想要 x 循环,你有 x 上面。粘贴有问题吗?还是你改变了你的问题?
-
所以我还是看到了几个问题。一,假设您循环 1000 次并在每个循环上选择不同的数据。然后将其粘贴到相同的目的地。您每次都会覆盖,只有最后一次粘贴可见。第二,您正在选择,但从不复制,所以当您粘贴时,它将是您剪贴板中的任何内容。三,您的目的地与您的来源的大小不同。要获取您的复制宏代码,只需录制一个新宏,选择、复制、然后粘贴,您就可以获取该代码。让我们先带你到那里。
-
@MutjayLee 我在选择范围“Ax:Jx”时遇到问题,因为我想为 x =1 选择范围“A1:J1”,为 x = 2 选择范围“A2:J2”等此代码不起作用:“Sheets("Test1").Range(Cells(x, 1), Cells(x, 10)).Select"