rand(life)

[vba] 숫자 배열 일치하는 셀범위 찾기 본문

컴퓨터/엑셀

[vba] 숫자 배열 일치하는 셀범위 찾기

flogsta 2017. 7. 19. 23:01


지난 번에 배웠던 것을 써먹은 사례이다.

위와 같이 A1:D1의 숫자 배열과 같은 배열을 아래 5행에서 찾아서, 그 바로 아래 행에 색깔을 칠하는 매크로이다.

포인트는 파란색 칠한 부분이다.

Option Explicit
Sub match_serial()
Dim v As String
Dim a As Range
Dim wf As WorksheetFunction
Set wf = WorksheetFunction
v = Join(wf.Transpose(wf.Transpose(Range("a1:d1"))))
For Each a In [a5:L5]
If Join(wf.Transpose(wf.Transpose(a.Resize(, 4)))) = v Then
a.Offset(1).Resize(, 4).Interior.Color = vbYellow
End If
Next
End Sub


역시 지식인 답변을 위해 만든 코드.

일치하는수열색채우기.xlsm

transpose를 두 번 쓰는 이유에 대해 지난 번 포스팅한 글에 있는 설명을 그대로 가져온다.

세로범위는 1번을 쓰면 1차원배열
가로범위는 2번을 써야 1차원배열이 됩니다.
1차원 배열을 Join()함수로 문자화 하기 위해...

범위는 가로든 세로든 기본적으론 2차원 배열입니다.
배열은 가로배열이 기본이라고 생각하시면 되구요.
세로 범위는 1변 변환하면 가로 1차원으로 바뀌므로 1번에끝
가로범위는
- 1차변환 = 세로 1차원
- 2차변환 = 가로 1차원
이렇게 2번 해야 가로 1차원으로 쓸수있어요.