Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从一张图纸到另一张图纸循环复制和粘贴列_Vba_Excel - Fatal编程技术网

Vba 从一张图纸到另一张图纸循环复制和粘贴列

Vba 从一张图纸到另一张图纸循环复制和粘贴列,vba,excel,Vba,Excel,这应该是一件相对容易的事情,但请原谅我,因为我是VBA新手。我正试图通过从一张纸上复制列到粘贴到另一张纸上来自动循环。复制和粘贴时,列的长度不同,偏移量也不同 这是我到目前为止所拥有的(它超时了,所以不确定我的循环发生了什么) 这是我想要的样子。第一张图片是活页1上的原始范围。第二张图片是应复制到图纸2上的目标范围 没有变量,它非常简单: Sub TestMe() Dim x As Long For x = 1 To 3 Worksheets(1

这应该是一件相对容易的事情,但请原谅我,因为我是VBA新手。我正试图通过从一张纸上复制列到粘贴到另一张纸上来自动循环。复制和粘贴时,列的长度不同,偏移量也不同

这是我到目前为止所拥有的(它超时了,所以不确定我的循环发生了什么)

这是我想要的样子。第一张图片是活页1上的原始范围。第二张图片是应复制到图纸2上的目标范围


没有变量,它非常简单:

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
试试这个

For x = 1 To 3
    original.Columns(x+1).Copy destination.Cells(1,x)
Next x
For x = 1 To 3
    original.Columns(x+1).Copy destination.Cells(1,x)
Next x