Microsoft Excel에서 VBA를 사용하여 한 장에 각 시트의 UsedRange 복사
_ 각 워크 시트의 사용 범위를 Master sheet에 복사하고 싶다면이 글을 읽어야합니다. VBA 코드를 사용하여 각 워크 시트의 데이터를 복사 한 다음 덮어 쓰지 않고 다른 시트에 붙여 넣습니다 ._
_ 매크로는 이름이 Master 인 시트를 통합 문서에 추가하고이 워크 시트의 통합 문서에있는 모든 시트의 셀을 복사합니다 ._
_ 첫 번째 매크로는 일반 복사를 수행하고 두 번째 매크로는 값을 복사합니다. 매크로의 잠수함은 아래 기능을 사용합니다. 매크로는 함수 없이는 작동하지 않습니다 ._
다음은 Sheet1 및 Sheet2의 데이터 스냅 샷입니다.
VB 편집기를 시작하려면 아래 단계를 따라야합니다.
개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오
-
표준 모듈에 아래 코드 복사
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
이제 매크로 코드가 설정되었습니다. “CopyUsedRange”매크로를 실행하고 새 시트 “Master”를 삽입하고 각 시트의 데이터를 복사합니다.
결론 : * 여러 시트에서 데이터를 복사하는 것은 수동 작업입니다. 하나; 위 코드를 사용하면 매크로를 한 번만 클릭하여 데이터를 통합 할 수 있습니다.
_ 블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._
_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요