Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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,我正在尝试编写一个宏,该宏将从工作表复制一系列单元格,将它们粘贴到包含所有粘贴数据的工作表(“Bulksheet”)中,然后移动到第一个工作表之后的下一个选项卡。需要对40多个选项卡执行此操作。幸运的是,数据在每个选项卡中都位于相同的位置,包括Bulksheet选项卡 我可以很容易地将此应用于一个选项卡,但返回到第一个活动选项卡,然后继续下一个选项卡,这给我带来了无尽的麻烦 Ex.代码(缩短到关键位)。在下一页的底部,我需要移动到下一页并执行相同的功能,返回“Bulksheet”并粘贴到C列的下

我正在尝试编写一个宏,该宏将从工作表复制一系列单元格,将它们粘贴到包含所有粘贴数据的工作表(“Bulksheet”)中,然后移动到第一个工作表之后的下一个选项卡。需要对40多个选项卡执行此操作。幸运的是,数据在每个选项卡中都位于相同的位置,包括Bulksheet选项卡

我可以很容易地将此应用于一个选项卡,但返回到第一个活动选项卡,然后继续下一个选项卡,这给我带来了无尽的麻烦

Ex.代码(缩短到关键位)。在下一页的底部,我需要移动到下一页并执行相同的功能,返回“Bulksheet”并粘贴到C列的下一个空单元格中:

Sub
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Range("C100:F103").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Bulksheet").Select
Range("D1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Next
End Sub

尝试使用索引值在工作表中循环

Sub
Dim i as integer
For i = 1 to worksheets.count
sheets(i).Activate
if activesheet.name <> "Bulksheet" then
Range("C100:F103").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Bulksheet").Select
Range("D1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
end if
Next
End Sub
Sub
作为整数的Dim i
对于i=1到worksheets.count
工作表(一)激活
如果activesheet.name为“Bulksheet”,则
范围(“C100:F103”)。选择
Application.CutCopyMode=False
选择,复制
工作表(“工作表”)。选择
范围(“D1”)。结束(xlDown)。偏移量(1,0)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
如果结束
下一个
端接头
试试这个:

Sub CopyToBulksheet()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
    If ws.Name <> "Bulksheet" Then
        ws.Activate
        Range("C1:F10").Copy

        Sheets("Bulksheet").Select
        Range("D" & Cells.Rows.Count).End(xlUp).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End If
Next
End Sub

Sub CopyToBulksheet()
将ws设置为工作表
对于此工作簿中的每个ws。工作表
如果ws.Name为“Bulksheet”,那么
ws.Activate
范围(“C1:F10”)。副本
工作表(“工作表”)。选择
范围(“D”和单元格。行。计数)。结束(xlUp)。偏移量(1,0)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
如果结束
下一个
端接头

@Josh Ragusa抱歉,我不知道您的桌子结构。。。您可以根据自己的情况更改范围。这很有吸引力,必须进行大量更改才能适合我的工作表,但切换整个选项卡的代码非常有效。谢谢请不要将[宏]用于MS Office或VBA。