excel - 复制范围并粘贴到新工作簿中

标签 excel vba

这应该非常简单,但是我已经在论坛和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”
  • 明确引用复制范围,包括工作簿和工作表引用
  • 首先创建新工作簿,然后执行复制,然后重新激活新工作簿并粘贴

上述解决方案均无效...现阶段如有任何智慧,我们将不胜感激!

最佳答案

这就是你正在尝试的吗?我已经对代码进行了注释,这样您就不会在理解代码的作用时遇到任何问题。

Option Explicit

Sub Sample()
    Dim wbI As Workbook, wbO As Workbook
    Dim wsI As Worksheet, wsO As Worksheet

    '~~> Source/Input Workbook
    Set wbI = ThisWorkbook
    '~~> Set the relevant sheet from where you want to copy
    Set wsI = wbI.Sheets("Sheet1")

    '~~> Destination/Output Workbook
    Set wbO = Workbooks.Add

    With wbO
        '~~> Set the relevant sheet to where you want to paste
        Set wsO = wbO.Sheets("Sheet1")

        '~~>. Save the file
        .SaveAs Filename:="C:\Book2.xls", FileFormat:=56

        '~~> Copy the range
        wsI.Range("A1:B10").Copy

        '~~> Paste it in say Cell A1. Change as applicable
        wsO.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    End With
End Sub

关于excel - 复制范围并粘贴到新工作簿中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12340688/

相关文章:

c# - VSTO Excel 加载项 C# 的安装文件(Visual Studio Professional 2017)

html - 使用 VBA 在电子邮件中嵌入图像

java - 使用 shiftRows 按列对 Excel 进行排序- Apache POI - XmlValueDisconnectedException

vba - 无法获取worksheetfunction类的平均属性

excel - 如何使 Excel 将前导单引号解释为常规字符?

sql-server - 将数据从 Excel 导入 MS SQL Server 时如何创建标识列(使用导入和导出向导)?

java - 如何在 POI API 中进行回车

excel - 范围上的 PasteSpecial 方法失败

excel - "Object doesn' t 支持此操作"用于 Excel 2011 (Mac OS X) 中的下拉菜单

excel - 将 weeknum 放入数组中?