这应该是相对容易的事情,但是请原谅我,因为我是VBA的新手。我正在尝试通过将列从一张纸复制到粘贴到另一张纸来实现自动循环。列的长度不同,并且复制和粘贴之间的偏移量也不同。
这是我到目前为止的内容(它超时了,所以不确定我的循环是怎么回事)。
Sub LoopEveryTwoColumns()
Dim original As Range
Dim destination As Range
Set original = Sheets("Sheet1").Columns("B")
Set destination = Sheets("Sheet2").Columns("A")
Dim x As Long
For x = 1 To 3
original.Copy (destination)
original.Offset(0, 2).Copy (destination.Offset(0, 1))
Next x
End Sub
这就是我想要的样子。第一张图片是Sheet1上的原始范围。第二张图片是应复制到Sheet2的目标范围。
答案 0 :(得分:1)
没有变量,这很简单:
Sub TestMe()
Dim x As Long
For x = 1 To 3
Worksheets(1).Columns(x * 2).Copy Worksheets(2).Columns(x)
Next x
End Sub
这个想法是,您需要每隔一列-因此x * 2
。在第二个工作表中,您需要连续粘贴-x
。
如果需要使用变量(通常更好),请为工作表而不是列设置变量:
Sub TestMe()
Dim original As Worksheet
Dim destination As Worksheet
Set original = Worksheets(1)
Set destination = Worksheets(2)
Dim x As Long
For x = 1 To 3
original.Columns(x * 2).Copy destination.Columns(x)
Next x
End Sub
答案 1 :(得分:0)
尝试使用此方法。
For x = 1 To 3
original.Columns(x+1).Copy destination.Cells(1,x)
Next x