【发布时间】:2012-09-02 16:05:17
【问题描述】:
这应该很简单,但我已经在论坛和 SO 答案中搜索了几个小时,但没有找到答案,所以我(不情愿地)创建了我自己的问题。
我要做的只是创建一个新工作簿,然后将另一个工作簿中的范围粘贴到该工作簿中。听起来很简单..?
我原来的工作簿,我们称之为 Book1。我正在尝试创建一个新工作簿 Book2,我会将单元格 A1:B10 的 值 复制到该工作簿。
这是我的代码的一个版本(从 Book1 打开开始):
Range("A1:B10").Copy
Set NewBook = Workbooks.Add
With NewBook
.SaveAs Filename:="Book2.xls"
End With
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
这会产生“PasteSpecial of Range class failed”错误。我尝试了以下修复,但没有成功:
- 在代码中添加了'Workbooks("Book2.xls").Activate'
- 删除了 PasteSpecial 行中的额外参数
- 尝试使用“.Paste”而不是“.PasteSpecial”
- 将“Selection.PasteSpecial”更改为“ActiveSheet.PasteSpecial”
- 明确引用复制范围,包括工作簿和工作表引用
- 首先创建新工作簿,然后执行复制,然后重新激活新工作簿并粘贴
上述解决方案均无效...现阶段的任何智慧都将不胜感激!
【问题讨论】: