반응형
하기 사진과 같은 Sheet2 에서 제품명을 클릭한 이후 검색 단추를 누르면 Sheet1 (제품명) 시트로 이동하고 필터처리까지 하는 VBA 매크로 입니다.
1. VBA 창에 가서 검색 및 필터의 SUB를 생성해줍니다.
(시트 명은 자신에게 맞도록 설정)
Sub SearchAndFilter()
Dim searchSheet As Worksheet
Dim targetSheet As Worksheet
Dim searchRange As Range
Dim foundCell As Range
Dim productName As String
' 시트 설정
Set searchSheet = ThisWorkbook.Sheets("Sheet2")
Set targetSheet = ThisWorkbook.Sheets("제품명")
' 시트2를 활성화하고 선택된 셀의 제품명 가져오기
searchSheet.Activate
If TypeName(Selection) <> "Range" Then
MsgBox "셀이 선택되지 않았습니다.", vbExclamation, "오류"
Exit Sub
End If
productName = Selection.Value
' 시트1에서 제품명 검색 범위 설정
Set searchRange = targetSheet.Columns("A:A")
' 시트1에서 제품명 찾기
Set foundCell = searchRange.Find(What:=productName, LookIn:=xlValues, LookAt:=xlWhole)
If Not foundCell Is Nothing Then
' 찾은 셀로 이동
targetSheet.Activate
foundCell.Select
' 필터링을 위한 자동 필터 설정
If targetSheet.AutoFilterMode Then
targetSheet.AutoFilter.ShowAllData
End If
' AutoFilter 적용 범위가 정확한지 확인
Dim filterRange As Range
Set filterRange = targetSheet.Range("A1:A" & targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Row)
filterRange.AutoFilter Field:=1, Criteria1:=productName
Else
MsgBox productName & " 제품을 찾을 수 없습니다.", vbExclamation, "검색 결과"
End If
End Sub
2. 검색버튼에 대해 원클릭 이벤트 생성후 해당 SUB를 불러와서 처리하도록 합니다.
Sub 사각형둥근모서리1_Click()
Call SearchAndFilter
End Sub
예제 파일 다운
반응형
'IT 전산 > 엑셀' 카테고리의 다른 글
엑셀 VBA를 이용하여 동일한 폴더에 있는 Perl 스크립트 자동 실행하기 (0) | 2023.12.04 |
---|