Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops - Fatal编程技术网

VBA循环:将范围从多个工作表复制到多个集合位置

VBA循环:将范围从多个工作表复制到多个集合位置,vba,loops,Vba,Loops,我最初使用下面的代码将15个工作表中的数据编译成一个“模板”表。它很好地做到了这一点——但是,工作簿的需求有所改变 我现在需要将数据排列到设置的位置,每个循环偏移25,而不是将数据复制到相对位置(“模板”列a中的第一个空单元格) 例: 我一直在尝试排除故障,但在循环方面我仍然很弱。有人能帮我吗 子测试() 将工作作为工作表 用于此工作簿中的每个工作。工作表 如果不是wks.Name=“template”,则 wks.Range(“B6:B30”)。副本 活动表。粘贴 目标:=工作表(“模板”)。

我最初使用下面的代码将15个工作表中的数据编译成一个“模板”表。它很好地做到了这一点——但是,工作簿的需求有所改变

我现在需要将数据排列到设置的位置,每个循环偏移25,而不是将数据复制到相对位置(“模板”列a中的第一个空单元格)

例:

我一直在尝试排除故障,但在循环方面我仍然很弱。有人能帮我吗

子测试()
将工作作为工作表
用于此工作簿中的每个工作。工作表
如果不是wks.Name=“template”,则
wks.Range(“B6:B30”)。副本
活动表。粘贴
目标:=工作表(“模板”)。单元格(Rows.Count,“A”)。结束(xlUp)。偏移量(1)
如果结束
下一个
端接头

试试这个。假设复制的数据从不超过24行

Sub test()

Dim wks As Worksheet, r As Range

Set r = Worksheets("template").Range("A3") 'initial paste range

For Each wks In ThisWorkbook.Worksheets
    If Not wks.Name = "template" Then
        wks.Range("B6:B30").Copy r
        Set r = r.Offset(25)                'move down 25 
    End If
Next

End Sub
Sub test()

Dim wks As Worksheet, r As Range

Set r = Worksheets("template").Range("A3") 'initial paste range

For Each wks In ThisWorkbook.Worksheets
    If Not wks.Name = "template" Then
        wks.Range("B6:B30").Copy r
        Set r = r.Offset(25)                'move down 25 
    End If
Next

End Sub