Microsoft Excel에서 VBA를 사용하여 폴더에있는 모든 통합 문서에 셀을 복사
이 기사에서는 폴더의 모든 통합 문서에 셀을 복사하는 매크로를 만듭니다.
일부 샘플 Excel 파일을 원시 데이터로 사용했습니다. 이 파일에는 직원의 출석 세부 정보가 포함되어 있습니다. 각 파일에는 날짜, 직원 ID 및 직원 이름이 포함되어 있습니다. 폴더 내의 모든 파일에 헤더를 추가하려고합니다.
매크로를 실행하면 H8에서 J10 범위의 데이터가 폴더 내의 모든 Excel 시트에 헤더로 붙여 넣어집니다.
코드 설명
FolderPath = Sheet1.TextBox1.Value 위 코드는 변수를 언급 할 텍스트 상자에 값을 할당하는 데 사용됩니다.
Dir (FolderPath & “* .xlsx”)
위의 코드는 지정된 폴더 경로 내에서 첫 번째 파일의 파일 이름을 가져 오는 데 사용됩니다.
동안 파일 이름 <> “”
Count1 = Count1 + 1 ReDim Preserve FileArray (1 To Count1)
FileArray (Count1) = 파일 이름 FileName = Dir ()
Wend 위의 코드는 문자열 배열을 만드는 데 사용됩니다. 폴더에있는 모든 파일의 파일 이름이 포함됩니다.
Workbooks.Open (FolderPath & FileArray (i))
위의 코드는 지정된 통합 문서를 여는 데 사용됩니다.
SourceWB.Worksheets (1) .Range ( “H8 : J10”). Copy DestWB.Worksheets (1) .Range ( “A1 : C3”)
위의 코드는 기본 통합 문서에서 다른 통합 문서로 헤더를 복사하는 데 사용됩니다.
아래 코드를 따르세요
Option Explicit Sub CopyingDataToFilesInFolder() 'Declaring variables Dim FileName, FolderPath, FileArray() As String Dim Count1, i As Integer Dim SourceWB, DestWB As Workbook 'Getting folder path from the text box FolderPath = Sheet1.TextBox1.Value If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath & "\" End If 'Getting the file name from the folder FileName = Dir(FolderPath & "*.xlsx") Count1 = 0 'Creating an array which consists of file name of all files in the folder While FileName <> "" Count1 = Count1 + 1 ReDim Preserve FileArray(1 To Count1) FileArray(Count1) = FileName FileName = Dir() Wend Set SourceWB = ThisWorkbook For i = 1 To UBound(FileArray) 'Opening the workbook Set DestWB = Workbooks.Open(FolderPath & FileArray(i)) 'Pasting the required header SourceWB.Worksheets(1).Range("H8:J10").Copy DestWB.Worksheets(1).Range("A1:C3") 'Closing the workbook DestWB.Close True Next Set DestWB = Nothing Set SourceWB = Nothing End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요