날짜, 호기, 주/야 중 하나를 검색어로 입력하면
자동필터를 활용하여 원본데이터의 일부를 가져온다.
검색어의 타입에 따라 필터검색 조건을 지정하는 것이 포인트.
Option ExplicitSub fndCondition() Dim rng As Range Dim strFnd As Range Dim intFind As Integer Dim wsData As Worksheet Dim rngPaste As Range Dim rng1stData As Range With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With '변수 설정 Set wsData = Sheets("기본정보") Set strFnd = Range("C4") Set rngPaste = Range("B9") Set rng1stData = wsData.Range("B3") '기존자료 삭제 rngPaste.CurrentRegion.Offset(1).ClearContents '검색 조건에 따라 검색범위 지정 Select Case TypeName(strFnd.Value) Case "Date": intFind = 1 '날짜 Case "Double": intFind = 2 '호기 Case "String": intFind = 3 '주/야 Case "Empty": GoTo j '빈셀이면 매크로 종료 End Select '검색조건에 맞춰서 기본정보 시트에 필터 적용 With rng1stData .AutoFilter Field:=intFind, Criteria1:=strFnd.Text .CurrentRegion.Offset(1).Copy rngPaste End With '붙여온 값에서 구분은 삭제 With rngPaste .CurrentRegion.Offset(1).Columns(5).Resize(, 3).Cut .Offset(, 3) End With '작업 완료 후 검색 조건 셀속성을 일반으로 변경하고 필터 해제 With strFnd .Value = .Text .NumberFormatLocal = "G/표준" End With rng1stData.AutoFilter j: With Application .ScreenUpdating = True .EnableEvents = True .Calculation = xlCalculationAutomatic End WithEnd Sub cs
'VB(A)' 카테고리의 다른 글
그룹으로 내림차순 (0) | 2015.05.15 |
---|---|
셀 안의 문자열 삭제 (0) | 2015.05.03 |
초과근무내역 가져오기 (0) | 2015.04.29 |
흩어진 글자들을 한줄로 오름차순 정렬 (1) | 2015.04.22 |
표를 달력으로 보내기 (2) | 2015.04.20 |