파란 셀 안에 to 가 있고 by 도 있다.
어디에도 있을 수 있다는 가정 하에.
사용자정의 함수와 단추를 이용한 두가지 예제.
정규식을 이용하여 to 와 by의 유무를 파악하였다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 Option ExplicitSub Macro() Dim v, smV Dim R%() Dim i%, j%, k% Dim intStart%, intEnd% Dim MySet As Object Dim rnG As Range ' 정규식 선언. 숫자만 걸러냄 With CreateObject("VBscript.Regexp") .Global = True .Pattern = "(\d+)" ' 선택 영역 중 데이터가 있는 영역만 순환 For Each rnG In Selection.SpecialCells(2) ' 띄어쓰기를 기준으로 숫자를 나누어서 배열에 담음 v = Split(rnG, " ") j = 0 ' 나뉜 배열을 순환 For Each smV In v If .test(smV) = True Then Set MySet = .Execute(smV) '정규식 실행 intStart = MySet(0) '시작 숫자는 정규식의 첫 그룹 k = 1 '순환문의 기본단위 Select Case MySet.Count Case 1 '숫자만 있을 때 intEnd = MySet(0) Case 2 'to만 있을 때 intEnd = MySet(1) Case 3 'by까지 있을 때 intEnd = MySet(1) k = MySet(2) End Select ' to, by 의 유무에 따라 다르게 배열에 삽입 For i = intStart To intEnd Step k ReDim Preserve R(j) R(j) = i j = j + 1 Next i End If Next smV ' 선택 셀의 오른쪽 두칸부터 한 셀에 하나의 숫자를 출력 rnG.Offset(, 2).Resize(, UBound(R) + 1) = R Next rnG End WithEnd Sub cs
'VB(A)' 카테고리의 다른 글
값이 변함에 따라 결과물 달라지기 (0) | 2015.12.28 |
---|---|
정규식 - 지역명을 세분화 하기 (0) | 2015.12.23 |
정규식 - 계산식으로 이루어진 셀을 계산하기 (0) | 2015.12.11 |
VBA - 트리뷰 (0) | 2015.12.10 |
취소선이 적용된 텍스트만 추출 (4) | 2015.12.08 |