폴더의 통합 문서를 루프 한 다음 해당 시트를 반복하면됩니다. 약간의 형식 차이에 따라 가져올 때 추가 작업이 필요할 수 있습니다.
Sub ImportWorkbooks(destination as workbook, importFolderPath As String)
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object associated with the directory
Set objFolder = objFSO.GetFolder(importFolderPath)
'Loop through the Files collection and import each workbook
For Each objFile In objFolder.Files
Dim source As Workbook
Set source = Application.Workbooks.Open(objFile.Path, ReadOnly:=True)
ImportWorkbook source, destination
wb.Close
Set wb = Nothing
Next
Set objFolder = Nothing
Set objFile = Nothing
Set objFSO = Nothing
End Sub
Sub ImportWorkbook(source As Workbook, destination as Workbook)
Dim sheet As Worksheet
'Import each worksheet
For Each sheet In source.Sheets
ImportWorksheet sheet, destination
Next sheet
End Sub
Sub ImportWorksheet(sheet As Worksheet, destination as Workbook)
'Perform your import logic for each sheet here (i.e. Copy from sheet and paste into a
'sheet into the provided workbook)
End Sub
기본 사용법과 같은 것이 될 것이다 현재 통합 문서로 가져 다음
ImportWorkbooks ThisWorkbook, "c:\path\to\folder\containing\workbooks\to\import"
내가 'ImportWorksheet'의 '시트'인수에 '하는 ByRef 인수 형식이 일치'를 받고있는 것으로 보인다 컴파일 할 때. 왜 어떤 생각? 그럼에도 불구하고 코드는 매우 깨끗 해 보입니다. 감사! – MattV
예, 시트 변수는 특별히 Worksheet 형식으로 초기화해야합니다. VBA가 제공 할 환상적인 오류 메시지 중 하나입니다 :). 이를 반영하도록 코드를 업데이트합니다. – Shaun