Excel 如何在工作表之间循环复制/粘贴?
我正在尝试编写一个循环,它将遍历工作簿并执行以下操作: 1.选择一个工作表 2.复制选定工作表上的选定单元格 3.返回主表或“主”表 4.将复制的值粘贴到此母版页的下一个空行中 5.转到下一个工作表并重新开始该过程 我已经尝试使用下面的代码来实现这一点,但恐怕我对VBA、循环和动态范围选择仍然是新手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
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”。上面写着“工作表类的粘贴方法失败了,我不太清楚这是什么意思,