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/1/visual-studio-2012/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
Excel 如何在工作表之间循环复制/粘贴?_Excel_Vba - Fatal编程技术网

Excel 如何在工作表之间循环复制/粘贴?

Excel 如何在工作表之间循环复制/粘贴?,excel,vba,Excel,Vba,我正在尝试编写一个循环,它将遍历工作簿并执行以下操作: 1.选择一个工作表 2.复制选定工作表上的选定单元格 3.返回主表或“主”表 4.将复制的值粘贴到此母版页的下一个空行中 5.转到下一个工作表并重新开始该过程 我已经尝试使用下面的代码来实现这一点,但恐怕我对VBA、循环和动态范围选择仍然是新手 Sub Create_One_Table() Dim wrksht As Worksheet Dim c As Range, rng For Each wrksht In ThisWorkboo

我正在尝试编写一个循环,它将遍历工作簿并执行以下操作: 1.选择一个工作表 2.复制选定工作表上的选定单元格 3.返回主表或“主”表 4.将复制的值粘贴到此母版页的下一个空行中 5.转到下一个工作表并重新开始该过程

我已经尝试使用下面的代码来实现这一点,但恐怕我对VBA、循环和动态范围选择仍然是新手

Sub Create_One_Table()

Dim wrksht As Worksheet
Dim c As Range, rng

For Each wrksht In ThisWorkbook.Worksheets

    With wrksht

            Range("BB2").Select
            Range(Selection, Selection.End(xlToRight)).Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
            Sheets("05").Select
            Range("BB17").Select
           Range("B" & Rows.Count).End(xlUp).Offset(1).Select
            Sheets("05").Paste
    End With

Next wrksht

End Sub

我的问题是如何更改上述代码以执行我最初指定的操作?上面的代码原样只复制和粘贴了我需要的部分内容(这意味着它是不完整的)。任何帮助都将不胜感激,到目前为止,我已经花了很多时间摸索这一点。谢谢,

看起来你已经掌握了基本知识。我有几点建议:

  • 块一起使用时,通过使用
    启动
    对象的属性来访问它们。我已将下面的
    范围
    调用更新为
    范围
    以演示。由于with块中
    Range
    的前三个用法是访问所选的任何工作表,因为您也从不选择循环中的每个
    wrksht
  • 无需使用
    。选择
    以保留您的位置。您可以直接参考
    范围(ref)
    ,也可以将
    .end
    链接在一起。这使执行速度大大加快,还可以避免切换到从中获取数据的工作表。查看我如何使用一个命令而不选择复制范围
  • 您可以参考图纸标签,例如
    图纸(“主控”)
    。我发现这比他们的数字容易
  • 我已将其合并到下面的代码中。它没有经过测试,因为我不知道你的布局,但我希望它能有所帮助

    Sub Create_One_Table()
    Dim wrksht As Worksheet
    Dim c As Range, rng
    'Make sure "Master" is selected because this is the only one you need to select cells on (to paste)
    Sheets("Master").Select
    For Each wrksht In ThisWorkbook.Worksheets
        With wrksht
                .Range(.Range("BB2"), .Range("BB2").End(xlToRight).End(xlDown)).Copy
        End With
        Range("B" & Rows.Count).End(xlUp).Offset(1).Select
        ActiveSheet.Paste
    Next wrksht
    End Sub
    

    你的问题是什么?请阅读>更新后的帖子(希望)更加清晰,非常感谢。我似乎有一个错误,虽然它说“ActiveSheet.Paste”。上面写着“工作表类的粘贴方法失败了,我不太清楚这是什么意思,