엑셀(Excel) VBA - SpecialCells 속성을 이용해 조건에 맞는 셀 선택하기 |
환경 : Microsoft Excel 2010 |
SpecialCells 속성은 특정영역의 셀을 선택할수 있도록 해 줍니다. 엑셀에서 이동옵션을 사용할 때 빈셀을 대상으로 하거나 수식이 입력된 셀만 복사하는 등의 작업을 하곤 하는데 SpecialCells 이용해 같은 기능을 구현할수 있습니다.
▼ SpecialCells 속성은 괄호안에 상수를 넣어 옵션을 지정합니다. 아래는 지정할수 있는 상수의 목록입니다.
l xlCellTypeAllFormatConditions : 모든 서식의 셀 지정
l xlCellTypeAllValidation : 유효성조건에 만족하는 셀 지정
l xlCellTypeBlanks : 비어있는 셀 지정
l xlCellTypeComments : 메모를 포함하고 있는 셀 지정
l xlCellTypeConstants : 상수를 포함하고 있는 셀 지정
l xlCellTypeFormulas : 수식을 포함하고 있는 셀 지정
l xlCellTypeLastCell : 사용된 범위에서 마지막 셀 지정
l xlCellTypeSameFormatConditions : 동일한 서식의 셀 지정
l xlCellTypeSameValidation : 동일한 유효성 조건 셀 지정
l xlCellTypeVisible : 보이는 모든 셀 지정
▼ 샘플은 빈셀을 복사하기 위한 옵션을 지정한 것입니다. 직접실행 창에서 소스를 넣고 Enter 를 누르게 되면 워크시트의 영역에서 빈셀만 선택되어 지는 것을 볼수 있습니다.
ActiveSheet.Range("A2").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select |
▼ 두 번째 인수는 안넣어도 되는데 선택한 값에서 셀의 형식에 해당하는 값을 가져올수 있습니다. 한번더 걸러 준다고 보면 됩니다.
l xlErrors : 에러가 있는 셀지정
l xlLogical : 수식이 있는 셀지정
l xlNumbers : 숫자에 해당하는 셀지정
l xlTextValues : 텍스트에 해당하는 셀지정
▼ 하나씩 실을 실행해보시면 첫번째는 선택한셀에서 텍스트에 해당하는 부분만 다시 선택하게 되고 두번째는 숫자에 해당하는 부분만 선택하게 됩니다.
ActiveSheet.Range("A2").CurrentRegion.SpecialCells(xlCellTypeConstants, xlTextValues).Select ActiveSheet.Range("A2").CurrentRegion.SpecialCells(xlCellTypeConstants, xlTextValues).Select |
댓글을 달아 주세요