이 기사에서는 폴더의 모든 통합 문서에 셀을 복사하는 매크로를 만듭니다.

일부 샘플 Excel 파일을 원시 데이터로 사용했습니다. 이 파일에는 직원의 출석 세부 정보가 포함되어 있습니다. 각 파일에는 날짜, 직원 ID 및 직원 이름이 포함되어 있습니다. 폴더 내의 모든 파일에 헤더를 추가하려고합니다.

ArrowMain

ArrowFilesInFolder

ArrowRawData

매크로를 실행하면 H8에서 J10 범위의 데이터가 폴더 내의 모든 Excel 시트에 헤더로 붙여 넣어집니다.

ArrowOutput

코드 설명

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]로 문의 해주세요