2017-04-20 142 views
0

基本上我想创建一个新的工作簿并从已打开的工作簿(文件名)复制一些数据并将其粘贴到新的工作簿中。我有以下vba代码:Excel vba selection.copy目的地不能正确粘贴

Workbooks.Add 
Set new_wb = ActiveWorkbook 
Workbooks(Filename).Worksheets("pivot").Range("A28").Activate 
ActiveCell.CurrentRegion.Select 
Selection.Copy Destination:=new_wb.Worksheets("Sheet1").Range("B2") 

但是,我没有看到粘贴到新工作簿中的任何内容。因此,我想知道我是否做错了什么。任何有识之士将不胜感激。谢谢!

回答

0

避免使用SelectActivate

Workbooks.Add 
Set new_wb = ActiveWorkbook 
Workbooks(Filename).Worksheets("pivot").Range("A28").CurrentRegion.Copy Destination:=new_wb.Worksheets("Sheet1").Range("B2") 
+0

谢谢,此代码的工作非常完美。你介意解释我的代码出错了吗? –

+0

AFAIK,你不能激活非激活工作簿中的单元格,所以我真的希望你的代码会崩溃在Range(“A28”)。Activate'。假设某种方式不会让你的代码崩溃(也许你有一个'On Error Resume Next',你在这个问题中没有提到?),活动单元格仍然在新的工作簿中,所以你试图复制空白单元格。 – YowE3K

+0

噢,是的,我确实有一个“On Error Resume Next”。现在我知道我错了,谢谢你的解释! –