Vba Excel在运行“复制/粘贴数据”宏后使数据源工作簿保持打开状态
我对VBA非常非常陌生。 我正试图通过一个宏自动复制8个动态“个人”工作簿中的数据,并粘贴到一个主工作簿中,所有主工作簿都在8个选项卡上分层,因为各个团队成员将不断更新这些单独的工作簿 下面的宏运行正常,但excel随后会将数据源工作簿保持打开状态,因此无法处理8个单独的文件 运行micro后,我可以添加什么代码来告诉excel自动关闭数据源文件?在end sub不工作之前的代码末尾添加“工作簿”(“C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE-WIP\SHARNY.xlsx”).Close”,并发出错误9 下面的代码是从1选项卡上的8个工作簿中的1个中复制过去的数据 非常感谢Vba Excel在运行“复制/粘贴数据”宏后使数据源工作簿保持打开状态,vba,excel,Vba,Excel,我对VBA非常非常陌生。 我正试图通过一个宏自动复制8个动态“个人”工作簿中的数据,并粘贴到一个主工作簿中,所有主工作簿都在8个选项卡上分层,因为各个团队成员将不断更新这些单独的工作簿 下面的宏运行正常,但excel随后会将数据源工作簿保持打开状态,因此无法处理8个单独的文件 运行micro后,我可以添加什么代码来告诉excel自动关闭数据源文件?在end sub不工作之前的代码末尾添加“工作簿”(“C:\Users\MIRAR\Desktop\AD HOC\DEMO FILE-WIP\SHAR
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
简言之,答案是:
工作簿(“SHARNY.xlsx”)。关闭
更好的答案是使用直接指向工作簿的变量:
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
将其分配给工作簿变量并使用该变量关闭(或任何其他操作)
我们采取了完全相同的路线,但我在(更新的)答案中缩进了代码:谢谢帮助!我使用了@Excelosaurus的答案,这与你的答案相匹配!我给你们投票,不是因为缩进,而是因为你们也给出了“简短”的答案DBTW-看看你的个人资料,我想你一定是我的老朋友了-我开始使用垃圾-80大约是在我开始工作编程的一年后。我当时9岁:TRS80问世时是D9?那就意味着我有十年的时间在你身上,所以一定要尊重你的长辈!!它面世的时候我才21岁(查看维基百科的发布日期),这也意味着它是在我开始编程3年后发布的。非常感谢!成功了!!!!我直接指向变量,而不是根据您建议的“更好”路线/实践指向实际工作簿。刚刚学到了一些新东西!
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