작성
·
299
답변 1
1
안녕하세요? 각 사업장마다 숨기는 행의 개수가 다를 때는 자동 매크로를 사용할 수 없고 모든 코드를 코딩하면 됩니다.
해당 사업장의 행 개수를 카운트하여 숨기기를 해도 되는데, B열의 사업장이 셀 병합되어 있어서 카운트하기는 쉽지 않으니 사업장의 순서가 동일하다는 가정하에서 [소계(수원)] 행의 위치와 [소계(아산)] 행의 위치를 찾아 숨기는 것이 더 좋은 방법입니다.
아래의 코드는 [아산] 사업장만 표시하는 코드입니다. 참고해서 응용해보시면 될것 같습니다.
맨 위의 변수 선언하는 3문장은 모든 매크로에 공통으로 사용할 수 있는 코드라 프로시저 외부에 코딩하여 사용할 수 있습니다. ([6-3.변수선언과사용방법살펴보기] 강좌 참고)
Sub 아산_동적()
Dim endRow As Integer '마지막 데이터 행 저장 변수
Dim iRange As Range, jRange As Range '각 사업장별 소계 글자가 입력된 셀 위치 저장 변수
Dim i As Integer, j As Integer '합계가 있는 행 번호 저장 변수
endRow = Range("B4").CurrentRegion.Rows.Count + 3 '마지막 행 계산
Set iRange = Columns("B:C").Find("소계(수원)", lookat:=xlWhole) '소계(수원)을 찾아 셀 위치 변수에 대입
Set jRange = Columns("B:C").Find("소계(아산)", lookat:=xlWhole) '소계(아산)을 찾아 셀 위치 변수에 대입
i = iRange.Row '소계(수원) 셀을 찾아 행 번호를 변수에 대입
j = jRange.Row '소계(아산) 셀을 찾아 행 번호를 변수에 대입
Rows("7:" & endRow).Hidden = True
Rows(i + 1 & ":" & j).Hidden = False
End Sub
바쁘실텐데 상세한 설명 해주셔서 정말 감사합니다. 도움이 많이 되었습니다 :)