여러 Excel 시트를 처리할 때 가독성을 높이기 위해 특정 조건에서 한 스프레드시트에서 다른 스프레드시트로 데이터를 복사해야 하는 경우가 있습니다. VBA 구현 Excel에서 모든 작업을 실행하는 가장 효과적이고 빠르고 안전한 방법입니다. 이 기사에서는 VBA 매크로를 사용하여 Excel의 고급 필터를 사용하여 데이터를 다른 시트에 복사하는 방법을 보여줍니다.
통합 문서 다운로드
여기에서 무료 연습 Excel 워크북을 다운로드할 수 있습니다.
Excel의 고급 파일러를 사용하여 VBA를 사용하여 데이터를 다른 시트에 복사하는 3가지 방법
다음 데이터세트를 보십시오. 원본이라는 Excel 워크시트가 있습니다. . 이 시트는 B4에서 E12 범위의 일부 데이터로 구성되어 있습니다. . 해당 범위도 중복 값으로 구성됩니다. 범위 G4~H5 기준 보유 . 우리가 원하는 것은 B5:E12 범위의 데이터를 복사하는 것입니다. , John일 때 이름 열 마크 있음 80 미만 (셀 G4:H5의 기준 ) 해당 특정 데이터를 고급 필터를 사용하여 다른 시트에 붙여넣습니다. 세 가지 다른 방법으로 Excel에서.
하드코딩된 매크로를 삽입하여 데이터를 복사하는 방법을 알아보겠습니다. , 선택 항목으로 필터링하는 방법 및 매크로를 기록하여 한 시트에서 다른 시트로 데이터를 전송하는 방법 . 그리고 위의 데이터셋은 언급된 모든 메소드를 실행하는 예제가 될 것입니다.
1. Excel의 고급 필터를 사용하여 데이터를 다른 시트에 복사하는 VBA 코드 포함
여기에서 VBA를 배우게 됩니다. 코드 유일한 데이터 복사 원본 시트 John's Marks가 80 미만인 경우 다른 이름의 시트로 대상 고급 필터로.
단계:
- 처음에 Alt + F11 키를 누릅니다. 키보드에서 또는 개발자 -> Visual Basic 탭으로 이동합니다. Visual Basic Editor 열기 .
- 다음으로 팝업 코드 창의 메뉴 표시줄에서 삽입 -> 모듈을 클릭합니다. .
- 그런 다음 다음 코드를 복사하여 코드 창에 붙여넣습니다.
Sub AdvancedFilterCode()
Dim iRange As Range
Dim iCriteria As Range
'set the range to filter and the criteria range
Set iRange = Sheets("Original").Range("B4:E12")
Set iCriteria = Sheets("Original").Range("G4:H5")
'copy the filtered data to the destination
iRange.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=iCriteria, CopyToRange:=Sheets("Target").Range("B4:E4"), Unique:=True
End Sub
이제 코드를 실행할 준비가 되었습니다.
- 이제 F5 키를 누릅니다. 키보드 또는 메뉴 모음에서 실행 -> 하위/UserForm 실행을 선택합니다. . 작은 실행 아이콘을 클릭할 수도 있습니다. 하위 메뉴 표시줄에서 매크로를 실행합니다.
코드 실행 후 결과를 확인하려면 아래 이미지를 참조하세요.
결과적으로 John's Marks가 80 미만인 데이터만 복사 타겟 시트 원본 시트 VBA 고급 필터 사용 .
자세히 알아보기: 고급 필터를 사용하여 Excel의 다른 시트에 데이터를 복사하는 방법
2. 사용자 정의 선택으로 데이터를 필터링하는 VBA 매크로 구현
이제 원본 의 데이터만 필터링하는 방법을 배우게 됩니다. 시트 John's Marks가 80 미만인 경우 다른 대상이라는 시트로 사용자가 선택한 범위에서 VBA의 고급 필터 사용 엑셀에서.
단계:
- 이전과 같은 방식으로 Visual Basic Editor를 엽니다. 개발자 탭 및 삽입 모듈 코드 창에서
- 그런 다음 코드 창에서 다음 코드를 복사하여 붙여넣습니다.
Sub AdvancedFilterBySelection()
Dim iTrgt As String
Dim iRange As Range
Dim iCriteria As Range
Dim iDestination As Range
On Error Resume Next
iTrgt = ActiveWindow.RangeSelection.Address
Set iRange = Application.InputBox("Select Range to Filter", "Excel", iTrgt, , , , , 8)
If iRange Is Nothing Then Exit Sub
Set iCriteria = Application.InputBox("Select Criteria Range", "Excel", "", , , , , 8)
If iCriteria Is Nothing Then Exit Sub
Set iDestination = Application.InputBox("Select Destination Range", "Excel", "", , , , , 8)
If iDestination Is Nothing Then Exit Sub
iRange.AdvancedFilter xlFilterCopy, iCriteria, iDestination, False
iDestination.Worksheet.Activate
iDestination.Worksheet.Columns.AutoFit
End Sub
이제 코드를 실행할 준비가 되었습니다.
- 이제 달려라 매크로.
- 그러면 팝업 상자가 나타납니다. 범위 선택 필터링하려는 항목 (이 경우 B4 ~ E12 범위입니다. ).
- 나중에 확인을 누릅니다. .
- 다음으로 다른 팝업 상자가 나타납니다. 이번에는 기준 범위를 선택해야 합니다. 데이터 세트에 저장한 것(기준 범위는 셀 G4에서 H5 데이터세트용).
- 다시 확인을 누릅니다. .
- 마지막으로 다른 팝업 상자가 나타납니다. 이제 대상 범위를 선택해야 합니다. 복사된 데이터를 저장하려는 위치 . 우리의 경우 셀 B2입니다. 대상 시트 .
- 그런 다음 확인을 누릅니다. .
결과를 보려면 아래 이미지를 보십시오.
마지막으로 John's Marks가 80 미만인 데이터만 복사 대상 시트 원본 시트 VBA 고급 필터 사용 .
관련 콘텐츠: Excel 고급 필터가 작동하지 않음(2가지 이유 및 솔루션)
유사한 수치
- Excel의 기준 범위에 텍스트가 포함된 경우 고급 필터를 사용하는 방법
- 동적 고급 필터 Excel(VBA 및 매크로)
- Excel의 기준 범위가 있는 고급 필터(18개 응용 프로그램)
- Excel의 여러 기준을 사용한 고급 필터(15개의 적절한 예)
- Excel VBA 예:기준과 함께 고급 필터 사용(6가지 기준)
3. Excel에서 매크로 기록으로 데이터를 다른 시트에 복사하기 위해 VBA 매크로 적용
이 섹션에서는 원본에서 데이터만 추출하는 동일한 문제에 대한 솔루션을 알게 될 것입니다. 시트 John's Marks가 80 미만인 경우 다른 필터링됨이라는 시트로 매크로 기록으로 VBA의 엑셀에서.
단계:
- 우선, 새 워크시트를 엽니다. (우리의 경우 필터링된 시트입니다. ).
- 해당 시트에서 머리글 행만 저장 원본 데이터 세트의.
- 다음으로 원본 시트 . 작은 매크로 기호가 표시됩니다. 시트의 왼쪽 하단에 있습니다. 기호 클릭 매크로 기록을 시작합니다.
- 그런 다음 매크로 기록 팝업 창이 나타납니다. 매크로 이름 제공 당신이 원하는 그. AdvancedFilter를 정의합니다. 매크로 이름으로 .
- 다음으로 매크로를 저장할 위치를 선택합니다. . 기존 통합 문서에 매크로를 저장하고 싶었으므로 이 통합 문서를 선택했습니다. .
- 나중에 확인을 클릭합니다. .
- 이제 원본 으로 돌아가십시오. 시트 방금 시작한 매크로가 기록을 시작했음을 알 수 있습니다.
- 그런 다음 시트로 이동해야 합니다. 복사된 데이터를 보유합니다. (예:필터링됨 시트).
- 활성 세포 보유 해당 시트에서 데이터 -> 고급으로 이동합니다. .
- 다음으로 고급 필터 팝업 상자가 나타납니다.
- 먼저, 확인 다른 위치로 복사 작업 의 옵션
- 이제 목록 범위 옆의 텍스트 상자에서 , 원본 으로 이동 시트 범위 선택 필터링(우리 데이터세트의 경우 범위는 B4:E12입니다. ).
- 그런 다음 기준 범위 옆의 텍스트 상자에서 , 기준 범위 선택 (John의 점수는 80점 미만입니다. ) 원본 에 저장됨 시트 (우리 데이터세트의 경우 범위는 G4:H5입니다. ).
- 이제 복사 대상 옆의 텍스트 상자에서 , 필터링됨 으로 이동 시트 , 복사된 데이터를 저장하려는 시트 헤더 범위 선택 (우리 데이터세트의 경우 범위는 B4:E4입니다. ).
- 마지막으로 확인을 클릭합니다. .
이 전체 절차에 의해 생성된 결과를 보려면 아래 이미지를 보십시오. 데이터만 John's Marks가 80 미만인 경우 복사 필터링된 시트 원본 시트 매크로 기록 사용 .
- 이제 매크로 기호를 클릭합니다. 시트의 왼쪽 하단에서 매크로 기록 중지 . 이제 실행할 때마다 위에 설명된 프로세스를 수행하는 기록된 매크로가 있습니다.
하지만 단점이 있습니다. 이 방법의. 원본 에 새 데이터를 추가하는 경우 시트 , 필터링됨 시트 데이터가 기준을 충족하더라도 업데이트되지 않습니다.
새로 필터링된 시트 원본 에 새 데이터를 추가할 때 코드를 실행하여 자동으로 업데이트됩니다. 시트 . 그렇게 하려면 코드를 약간 수정해야 합니다.
원하는 것을 얻기 위한 모든 단계가 아래에 나와 있습니다.
단계:
- 처음에는 탭에서 보기 -> 매크로 -> 매크로 보기를 선택합니다. .
- 나중에 매크로 팝업 창이 나타납니다. 매크로 이름 선택 방금 녹음하여 만든 (고급 필터 우리의 경우).
- 그런 다음 수정을 클릭합니다. .
- 기록된 매크로 뒤에 있는 코드가 코드 창에 나타납니다(아래 이미지 참조).
- 이제 파란색으로 표시된 부분을 삭제합니다. (아래 그림 참조) 코드에서.
- 그런 다음 코드 수정 다음 그림과 같이
- 이제 업데이트된 코드 다음이 될 것입니다:
Sub AdvancedFilter()
Sheets("Original").Range("B4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Original").Range("G4:H5"), CopyToRange:=Sheets("Filtered").Range("B4:E4"), Unique:=False
End Sub
- 저장 이 코드입니다.
- 이제 원본 으로 돌아가십시오. 시트 새 데이터 추가 기준에 해당할 것입니다. 예를 들어, John 행을 추가했습니다. 획득한 마크가 76인 의 정보 80점 미만 기준에 해당 .
- 그런 다음실행 결과는 다음 이미지를 참조하세요.
- 새로 복사된 행이 있습니다. 필터링됨 시트 존 Mark 76이 있는 의 정보 기준(마크<80 ).
자세히 알아보기:Excel에서만 고유 레코드에 대해 고급 필터를 사용하는 방법
결론
결론적으로 이 문서에서는 고급 필터를 사용하여 다른 시트에 데이터를 복사하는 방법에 대한 3가지 기준을 보여주었습니다. VBA 매크로를 사용하여 Excel에서 . 이 글이 당신에게 많은 도움이 되었기를 바랍니다. 주제와 관련하여 언제든지 질문하십시오.
관련 기사
- 고급 필터를 사용하여 Excel에서 빈 셀을 제외하는 방법(3가지 쉬운 트릭)
- Excel VBA:범위 내 여러 기준의 고급 필터(5가지 방법)
- Excel에서만 고유 레코드에 대해 고급 필터를 사용하는 방법
- 고급 필터를 적용하여 Excel의 다른 위치로 복사
- Excel 고급 필터:"포함하지 않음" 적용(2가지 방법)
- Excel의 한 열에 여러 기준에 따라 고급 필터 적용