VB:将范围复制到另一个Excel应用程序
我试图解决一个相对简单的问题,但我无法实现.我的目标是将主Excel应用程序的工作表中的一系列单元格复制到第二个新创建的Excel应用程序的工作表中的另一个范围(相同大小).我使用创建第二个应用程序
Set secondExApp = CreateObject("Excel.Application") 我正在使用此参考资料进行进一步处理.到现在为止,我尝试了两种不同的方法.两者都不能正常工作. 0:准备/介绍 Set srcWb = Application.ActiveWorkbook Set srcSheet = srcWb.Worksheets("example") Set dstApp = CreateObject("Excel.Application") Set dstWb = dstApp.Workbooks(1) Set dstSheet = dstWb.Worksheets(1) 1:PasteSpecial – 提供图像(!)而不仅仅是范围 srcSheet.Range("A1:B2").Copy dstSheet.Range("A1:B2").PasteSpecial xlPasteAll 2:Range.Copy [Destination] – 不起作用 – 我是否只能在同一个应用程序中使用此方法? srcSheet.Range(srcSheet.Cells(...,...),srcSheet.Cells(...,...)).Copy _ dstSheet.Range(dstSheet.Cells(...,dstSheet.Cells(...,...)) 任何帮助表示赞赏. 编辑: 编辑(已解决): 真正帮助我的是打开一个新的Excel实例更改了粘贴(特殊)菜单. 因此,我现在只需添加一个工作簿(可以隐藏)并使用此对象添加我的内容,而不是创建新实例.由于它保存在同一个实例中(也可以查看任务管理器),因此粘贴(特殊)菜单完全相同. 现在即使没有选择也可以使用Range.Copy [destination]! 结果: 'Hides the new workbook Application.ScreenUpdating = False Set dstWb = Workbooks.Add Set dstSheet = dstWb.Worksheets(1) srcSheet.Range(srcSheet.Cells(...,...)).Copy dstSheet.Paste dstSheet.Range(dstSheet.Cells(...,...)) 'Avoids the often seen dashed border around the copied range Application.CutCopyMode = False 'Setting the initial change back Application.ScreenUpdating = True 软件:Excel 2007
通过用棍子戳Excel来确定,你必须使用Worksheet.Paste来实现excel之间的东西:
srcSheet.Range("A1:B2").Copy dstSheet.Paste dstSheet.Range("A1") 用更粗的棍子戳Excel表明,当从剪贴板粘贴为xlClipboardFormatDspText时,公式会被保留: srcSheet.Range("A1:B2").Copy dstSheet.Range("A1").Select dstSheet.PasteSpecial xlClipboardFormatDspText,False 但是,这确实需要首先在dstSheet上选择一个单元格,因为Worksheet.PasteSpecial使用活动单元格. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |