_ 각 워크 시트의 사용 범위를 Master sheet에 복사하고 싶다면이 글을 읽어야합니다. VBA 코드를 사용하여 각 워크 시트의 데이터를 복사 한 다음 덮어 쓰지 않고 다른 시트에 붙여 넣습니다 ._

_ 매크로는 이름이 Master 인 시트를 통합 문서에 추가하고이 워크 시트의 통합 문서에있는 모든 시트의 셀을 복사합니다 ._

_ 첫 번째 매크로는 일반 복사를 수행하고 두 번째 매크로는 값을 복사합니다. 매크로의 잠수함은 아래 기능을 사용합니다. 매크로는 함수 없이는 작동하지 않습니다 ._

다음은 Sheet1 및 Sheet2의 데이터 스냅 샷입니다.

img1

img2

VB 편집기를 시작하려면 아래 단계를 따라야합니다.

개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오

img3

  • 표준 모듈에 아래 코드 복사

Sub CopyUsedRange()

Dim sh As Worksheet

Dim DestSh As Worksheet

Dim Last As Long

If SheetExists("Master") = True Then

MsgBox "The sheet Master already exist"

Exit Sub

End If

Application.ScreenUpdating = False

Set DestSh = Worksheets.Add

DestSh.Name = "Master"

For Each sh In ThisWorkbook.Worksheets

If sh.Name <> DestSh.Name Then

If sh.UsedRange.Count > 1 Then

Last = LastRow(DestSh)

sh.UsedRange.Copy DestSh.Cells(Last + 1, 1)

End If

End If

Next

Application.ScreenUpdating = True

End Sub

Sub CopyUsedRangeValues()

Dim sh As Worksheet

Dim DestSh As Worksheet

Dim Last As Long

If SheetExists("Master") = True Then

MsgBox "The sheet Master already exist"

Exit Sub

End If

Application.ScreenUpdating = False

Set DestSh = Worksheets.Add

DestSh.Name = "Master"

For Each sh In ThisWorkbook.Worksheets

If sh.Name <> DestSh.Name Then

If sh.UsedRange.Count > 1 Then

Last = LastRow(DestSh)

With sh.UsedRange

DestSh.Cells(Last + 1, 1).Resize(.Rows.Count, _

.Columns.Count).Value = .Value

End With

End If

End If

Next

Application.ScreenUpdating = True

End Sub

Function LastRow(sh As Worksheet)

On Error Resume Next

LastRow = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByRows, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Row

On Error GoTo 0

End Function

Function Lastcol(sh As Worksheet)

On Error Resume Next

Lastcol = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByColumns, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Column

On Error GoTo 0

End Function

Function SheetExists(SName As String, _

Optional ByVal WB As Workbook) As Boolean

On Error Resume Next

If WB Is Nothing Then Set WB = ThisWorkbook

SheetExists = CBool(Len(Sheets(SName).Name))

End Function

img4

img5

img6

이제 매크로 코드가 설정되었습니다. “CopyUsedRange”매크로를 실행하고 새 시트 “Master”를 삽입하고 각 시트의 데이터를 복사합니다.

img7

결론 : * 여러 시트에서 데이터를 복사하는 것은 수동 작업입니다. 하나; 위 코드를 사용하면 매크로를 한 번만 클릭하여 데이터를 통합 할 수 있습니다.

_ 블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._

_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요