1
我想寫一個宏,它將打開30個全部具有相同結構的excel文件。VBA:打開多個文件並在所有打開的文件上執行宏
宏應對所有文件執行操作,並從每個文件中獲取結果並將其放入另一個excel文件中。這意味着:所有結果(值)都將被複制到目標文件中。
如何編寫VBA代碼以打開多個文件?
如何從每個文件中獲取結果並將它們放在我的destination.xls文件中?
我想寫一個宏,它將打開30個全部具有相同結構的excel文件。VBA:打開多個文件並在所有打開的文件上執行宏
宏應對所有文件執行操作,並從每個文件中獲取結果並將其放入另一個excel文件中。這意味着:所有結果(值)都將被複制到目標文件中。
如何編寫VBA代碼以打開多個文件?
如何從每個文件中獲取結果並將它們放在我的destination.xls文件中?
嘗試檢查出FileSearch.LookIn Property
修改例子類似的東西。 (這就要求所有的30個文件的一個文件夾中雖然)
Dim WrkBook as Workbook
Set fs = Application.FileSearch
With fs
.SearchSubFolders = False
.LookIn = "C:\My Documents" 'Path of folder to search
.FileName = "*.xls" 'Limit to excel files
If .Execute > 0 Then
Debug.Print "There were " & .FoundFiles.Count & " file(s) found."
For i = 1 To .FoundFiles.Count
WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
WrkBook.Worksheets(1).Select
ThisWorkbook.Worksheets(1).Cells(DestinationRange) = WrkBook.Worksheets(1).Cells(SourceRange).Value
Next i
Else
Debug.print "There were no files found."
End If
End With
您也可以嘗試
Workbooks("Destination.xls").Worksheets("Sheet1").Cells(DestinationRange) = WrkBook.Worksheets(1).Cells(SourceRange).Value
也 - 出於興趣 - 做所有的Excel文件有一個共同的命名約定?你如何存儲這些文件名?陣列?常見的命名可能是最好的,就像 - MyFilei.xls是我是一個數字,你循環他們(For循環),並獲得結果輪流 – Katana24 2013-05-01 13:58:37