簡體   English   中英

循環瀏覽文件夾,並為每個工作簿副本將范圍粘貼到靜態工作簿

[英]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

這里的fileScripting.File對象, 而不是 Excel Workbook(尚未)。 因此,沒有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM