1번부터 1000 * 20 번까지 3,6,9 가 들어간 숫자를 찾고 그숫자의 갯수가 짝수번이면 컬러인텍스를 8 / 그렇지 않으면 컬러인덱스를 6으로 하는 구문이다. 아래는 같은 크루인 딱총님이 작성한 코드인데 정규식을 모르는 상태에서 몇일만에 놀랍도록 빅스텝 성장을 보여주었다.
딱총님의 내일을 응원한다...물론 우리 무지님과 시훈아빠 그리고 닥터 브레드님도 항상 본인의 문제에 관심을 가져주셔서 감사드린다.
정규식을 안쓰면 숫자들을 순환하며 Mid로 하나씩 걸러서 하나씩 비교해나가야 하지만 정규식을 사용하면 정규식의 Test와 Execute로 간단하게 풀 수 있는 문제이다.
더보기
Option Explicit
Sub 기초방20()
Dim rngall As Range: Set rngall = [d6].Resize([b6], [b7])
Dim rngA As Range
Dim i&
haja_format rngall '= 초기화
For Each rngA In rngall '= 전체 영역을 순환
i = i + 1: rngA = i '= 영역에 숫자들을 채워라
With CreateObject("vbscript.regexp") '= 정규식 선언
.Pattern = "[369]" '= 3,6,9 가 들어간 숫자
.Global = True
If .test(i) Then '= 정규식에 일치하면
If .Execute(i).Count Mod 2 = 0 Then '= 일치된 매치값이 짝수이면
rngA.Interior.ColorIndex = 8 '= 인테리어 컬러를 8
Else: rngA.Interior.ColorIndex = 6 '= 일치된 매치값이 홀수이면 인터리어 컬러인덱스를 6
End If
End If
End With
Next rngA
MsgBox "완료하였습니다."
End Sub
Function haja_format(rngall As Range)
rngall.Interior.ColorIndex = xlNone
rngall.ClearContents
End Function
'VBA > 엑사남_기초방' 카테고리의 다른 글
[기초방] VBA 100제 #22 [ 부서별최대값구하기 ] (0) | 2023.01.30 |
---|---|
[기초방] VBA 100제 #21 [ 반별 총점/평균 구하기 ] (0) | 2023.01.26 |
[기초방] VBA 100제 #19 [ 이름별 나열하기 ] (0) | 2023.01.18 |
[기초방] VBA 100제 #18 [ 이름별 카테고리 나열하기 ] (0) | 2023.01.17 |
[기초방] VBA 100제 #17 [ CHR + ASC ] (0) | 2023.01.17 |
댓글