繁体   English   中英

Excel VBA将工作表复制到未打开的工作簿中的现有工作表

[英]Excel VBA copy worksheet to existing sheet in unopened workbook

VBA新手在这里。

我记录了包含的代码,以便从源工作簿复制工作表并将其粘贴到另一个打开的工作簿的表中。

它可以工作,但是我想做的是; 触发宏复制工作表打开目标工作簿粘贴数据关闭原始工作簿在目标工作簿上结束,但工作表不同。

Sub Button5_Click()
'export data to template
Sheets("DataSet").Select 'sheet that I want to copy and paste (resides in macro workbook)
Cells.Select
Selection.Copy
Windows("Missing Data Template (concept1).xlsx").Activate 'destination workbook (no macros)
Sheets("Report").Select 'destination worksheet
Cells.Select
ActiveSheet.Paste

End Sub

感谢您的教育!

我相信您将不得不打开另一个工作簿,粘贴,然后关闭:

Sub Button5_Click()

    'a variable to hold our other workbook
    Dim otherwb as Workbook

    'open other workbook assign it to variable
    Set otherwb = Application.Workbooks.Open("Missing Data Template (concept1).xlsx")

    'Copypasta
    Sheets("DataSet").Cells.Copy Destination:=otherwb.Sheets("Report").Range("A1")

    'save and Close other workbook         
    otherwb.Close(true)   

End Sub

您还会注意到,我已经取消了所有.Select.Active类型代码。 在VBA中选择内容确实是不必要的,因为选择是人类.Select事情。 代码只需要知道获得什么以及在哪里放置它。 实际上,有时仅在结束时有时使用.select.activate触摸,以将光标/选择设置为正在运行代码的人员的特定点(例如,如果要确保一旦运行,Sheets(“ Dataset “).Range(” A1“)单元格已选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM