将范围粘贴到表

时间:2016-08-09 06:52:14

标签: excel vba excel-vba macros

我正在尝试创建一个宏,其中需要动态行数(用户输入)并将它们粘贴到不同工作表中的表中。我一开始很难找到并想方设法做到这一点。我有一个下面的解决方法第一次工作(它正确地采用'原始'范围并将其粘贴到表中)当我从VBA运行它时,但是当我按下宏指定按钮后崩溃。我的代码如下:

Sub AddRawData()

Dim count_of_data As Long
Dim rng As Range

Set rng = Sheets("New Input Raw Data").Range("B5", Range("B5").End(xlDown).End(xlToRight))
count_of_data = rng.Rows.Count

Sheets("Master Data").Select
For x = 1 To count_of_data
    ActiveSheet.ListObjects(1).ListRows.Add
Next x
Sheets("New Input Raw Data").Select
rng.Select
rng.Cut
Sheets("Master Data").Select
Range("b65536").End(xlUp).End(xlUp).Select
ActiveCell.Offset(1).Select
ActiveSheet.Paste

End Sub

我现在陷入困境并尝试过各种各样的工作,例如使用ActiveCell.paste或Range.Paste,但遇到了同样的崩溃问题。任何建议或代码更正将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

如果要将新插入的数据从 新输入原始数据 工作表复制到 主数据中现有数据的末尾> 表单,您不需要所有Select和大多数行,您只需运行以下代码:

Sub AddRawData()

Dim rng As Range
Dim sht_NewData As Worksheet
Dim sht_MasterData As Worksheet

Set sht_NewData = ThisWorkbook.Worksheets("New Input Raw Data")
Set sht_MasterData = ThisWorkbook.Worksheets("Master Data")

sht_NewData.Select
Set rng = sht_NewData.Range("B5", Range("B5").End(xlDown).End(xlToRight))

rng.Copy Destination:=sht_MasterData.Range("B" & sht_MasterData.Cells(sht_MasterData.Rows.Count, "B").End(xlUp).Row + 1)

End Sub