원하는 값을 포함하는 영역만 따로 출력하는 문제이다.
여기서 핵심은
Intersect를 통해서 교집합 영역을 추출하는것이다.
이것만 이해하면 본인의 코드를 충분히 이해할 수 있을 것이다.
포기하지 않은 자들이여...신의 가호가...
더보기
Option Explicit
Sub Find_Num()
Dim rngAll As Range: Set rngAll = [b5:g18] '= 전체영역
Dim rngF As Range '= Find 셀을 담을 영역
Dim rngAdrss$, n&, i&
Dim Vall(1 To 100) '= 임의의 크기의 배열을 설정
Dim rngX As Range: Set rngX = [i5]
With rngAll
Set rngF = .Find(What:=7, Lookat:=xlWhole) '= 전체 영역에서 숫자 7을 찾아라
If Not rngF Is Nothing Then '= 숫자 7이 있다면
rngAdrss = rngF.Address '= 해당 주소를 rngAdrdss 에 담아라
Do
n = n + 1 '= 7이 포함된 행을 담기 위한 배열 상수
Vall(n) = Intersect(rngF.EntireRow, rngAll) '= 7이 포함된 전체행과 전체영역의 교집합을 Vall에 담아라
Set rngF = .FindNext(rngF) '= 다음 찾은 영역을 rngF에 담아라
Loop While Not rngF Is Nothing And rngF.Address <> rngAdrss '= 더 찾을 값이 없거나 처음 위치까지 돌아오지 않을때까지 Do
End If
End With
For i = 1 To n '= 임의 배열 Vall에 실제 크기를 카운팅한 n 만큼 순환
rngX.Resize(1, 6) = Vall(i) '= 출력 영역에 Vall 중첩 배열을 출력
Set rngX = rngX.Offset(1) '= 다음 영역으로 이동
Next i
[i5].CurrentRegion.Borders.LineStyle = 2 '= 영역 대상으로 테두리 설정
End Sub
'VBA' 카테고리의 다른 글
[VBA] 사용자 지정 정렬을 해보자 (0) | 2022.12.22 |
---|---|
[VBA] 다중 Collection으로 단어조합하기 (5) | 2022.12.21 |
[VBA] 정규식으로 유일값 찾아내기 (0) | 2022.12.15 |
[VBA] 매출을 정렬해보자(Feat. ArrayList, RegExp) (0) | 2022.12.13 |
[VBA] 배열의 위치를 출력해보자 (0) | 2022.12.12 |
댓글