※ Copilot 질의 응답
※ 단축키를 지정하면 편리하게 사용 가능
Sub sht_Auto_Filter()
Dim ws As Worksheet
Dim Sub_Trade As String
Dim Detailed_specifications As String
Dim Target As String
'현재 워크시트 지정
Set ws = ActiveSheet
Target = Selection.Address
Cells(Selection.Row, 1).Select
'선택한 셀이 A열에 있는지 확인
If Not Intersect(Selection, ws.Columns("A")) Is Nothing Then
'선택 공종 값 가져오기
Sub_Trade = Cells(Selection.Row, 1).Value
Call RemovePrefixDynamic(Sub_Trade)
'선택 공종의 규격 값 가져오기
Detailed_specifications = Cells(Selection.Row, 2).Value
Call RemovePrefixDynamic(Detailed_specifications)
'값이 비어있지 않을 때만 필터 적용
If Sub_Trade <> "" Or Detailed_specifications <> "" Then
'기존 필터 해제
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'자동 필터 설정(A열 공종 기준)
ws.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:="*" & Sub_Trade & "*"
'자동 필터 설정(B열 규격 기준)
ws.Range("A1").CurrentRegion.AutoFilter Field:=2, Criteria1:="*" & Detailed_specifications & "*"
End If
End If
'화면을 최상단으로 이동
ActiveWindow.ScrollRow = 1
Range(Target).Select
End Sub
Sub RemovePrefixDynamic(ByRef filterValue As String)
Dim pos As Long
pos = InStr(filterValue, " ")
If pos > 0 Then
filterValue = Mid(filterValue, pos + 1)
End If
End Sub
Sub sht_ShowAllDate()
Dim ws As Worksheet
Dim rng As Range
Set ws = ActiveSheet
Set rng = Selection ' 현재 선택된 셀 기억
On Error Resume Next
ws.ShowAllData ' 필터 해제
On Error GoTo 0
rng.Select ' 원래 선택했던 셀 다시 선택
End Sub
'내역관련 > 내역자료' 카테고리의 다른 글
| 지정영역 내에서 일정 간격으로 1행 삽입 및 삭제 (0) | 2026.04.20 |
|---|---|
| 횡방향, 종방향 수식복사, 붙여넣기 (0) | 2026.03.30 |
| 노란색을 무색으로 변경, PDF 출판 후 원상복구 (0) | 2026.01.22 |
| 설계변경 세줄 내역 (0) | 2022.10.21 |
| 변경내역 당초를 group으로 묶기 (0) | 2022.10.13 |