我正在尝试创建一个宏,其中需要动态行数(用户输入)并将它们粘贴到不同工作表中的表中。我一开始很难找到并想方设法做到这一点。我有一个下面的解决方法第一次工作(它正确地采用'原始'范围并将其粘贴到表中)当我从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,但遇到了同样的崩溃问题。任何建议或代码更正将不胜感激。谢谢!
答案 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