![](/img/trans.png)
[英]Excel VBA - loop over files in folder, copy range, paste in this workbook
[英]Loop through folder, and for each workbook copy paste a range to a static workbook
我試圖遍歷工作簿列表,然后為每個工作簿復制並將當前工作簿中工作表上的多個范圍粘貼到主工作簿。
我在選擇工作簿時遇到麻煩,因此無法使用它-我的下標一直超出范圍,我認為我的文件路徑正確。 我嘗試使用擴展名和不使用擴展名,並且當我在計算機中搜索該擴展名時,它可以正常工作。 有任何想法嗎?
我試圖打開該文件(這是一個變體),但由於我認為它不被視為工作簿,因此無法正常工作。 我試圖打開該文件的名稱,但這也不起作用。 最后,我將范圍命名為實際名稱,並嘗試執行Workbooks(APath).Open,但這沒有用。 我想念什么? 謝謝!
我將文件路徑切換為假路徑。
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
這里的file
是Scripting.File
對象, 而不是 Excel Workbook(尚未)。 因此,沒有Activate
或Open
方法。 您必須將其作為工作簿對象打開才能使用工作簿方法。 要在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.