复制/粘贴数据macros运行后,Excel将数据源工作簿打开

我对VBA非常非常陌生。 我试图通过8个dynamic“个人”工作簿中的macros自动复制数据,以粘贴到8个选项卡上的所有主工作簿中,因为这些个人书籍将由各个团队成员不断更新。

我有下面的macros运行正常,但事后excel留下数据源工作簿打开,以便不会与8个人的文件。

我可以添加什么样的代码来告诉excel在micro运行后自动closures数据源文件? 添加“工作簿(”C:\用户\ MIRAR \桌面\ AD HOC \演示文件 – WIP \ SHARNY.xlsx“)。closures”End Sub之前的代码不工作,并发出错误9。

代码以下是从1个选项卡上的8个工作簿中的1个中复制过去的数据。

非常感激!

Sub CopyingRange() Workbooks.Open "C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE - WIP\SHARNY.xlsx" Dim CopyFromBook As Workbook Dim CopyToWbk As Workbook Dim ShToCopy As Worksheet Set CopyFromBook = Workbooks("SHARNY.xlsx") Set ShToCopy = CopyFromBook.Worksheets("Sheet1") Set CopyToWbk = Workbooks("Consolidated Tracker File.xlsx") Workbooks("C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE - WIP\SHARNY.xlsx").Close End Sub 

简短的回答是:

Workbooks("SHARNY.xlsx").Close

更好的答案是使用直接指向工作簿的variables:

 Sub CopyingRange() Dim CopyFromBook As Workbook Dim CopyToWbk As Workbook Dim ShToCopy As Worksheet Set CopyFromBook = Workbooks.Open("C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE - WIP\SHARNY.xlsx") Set ShToCopy = CopyFromBook.Worksheets("Sheet1") Set CopyToWbk = Workbooks("Consolidated Tracker File.xlsx") CopyFromBook.Close End Sub 

将其分配给您的工作簿variables,并使用它closures(或任何其他操作)。

 Sub CopyingRange() Dim CopyFromBook As Workbook Dim CopyToWbk As Workbook Dim ShToCopy As Worksheet Set CopyFromBook = Workbooks.Open("C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE - WIP\SHARNY.xlsx") Set ShToCopy = CopyFromBook.Worksheets("Sheet1") Set CopyToWbk = Workbooks("Consolidated Tracker File.xlsx") CopyFromBook.Close End Sub