循环浏览文件夹,并为每个工作簿复制一个范围粘贴到静态工作簿

我试图通过工作簿的列表循环,然后为每个工作簿将当前工作簿中工作表上的几个范围复制并粘贴到主工作簿。

我无法select工作簿,所以我可以使用它 – 我不断收到下标超出范围,我认为我的文件path是正确的。 我已经试过扩展和没有,当我在我的电脑中search扩展它工作正常。 有任何想法吗?

我试图打开文件(这是一个变种),这是行不通的,因为我不认为它被认为是一个工作簿。 我试图打开该文件的名称,但这也不起作用。 最后,我命名一个范围的实际名称,并试图做Workbooks(APath)。打开,但没有奏效。 我错过了什么? 谢谢!

我将文件path切换到假的。

Dim fso As FileSystemObject Dim MyObj As Object, MySource As Object, file As Variant Set fso = New FileSystemObject FilePath = InputBox(Prompt:="Type the folder file path: this:C:\Users\A\Desktop \test_folder\", Title:="UPDATE MACRO") Set MySource = fso.GetFolder(FilePath) For Each file In MySource.Files 'This does not work... file.Activiate file.Open 'So I tried this, and still did not work. Any ideas? APath = "\\file\A\Template_1.xlsx" MsgBox FilePath & file.Name actwb = FilePath & file.Name Workbooks(APath).Open Workbooks(APath).Activate MsgBox ActiveWorkbook 

这里的fileScripting.File对象, 而不是 Excel工作簿(还)。 所以没有ActivateOpen方法。 您必须打开它作为工作簿对象才能使用工作簿方法。 要在Excel中打开它,请执行以下操作:

 Dim wb as Workbook For Each file In MySource.Files Set wb = Workbooks.Open(file.path) 'now you can do stuff to the wb Workbook MsgBox wb.Name 'etc... 'when you're done with the workbook, save it/close it: wb.Save 'or omit this line if you don't want to save it, etc. wb.Close Next