본문 바로가기
VBA/엑사남_기초방

[기초방] VBA 100제 #7 [ 행렬변환 ]

by 일등미노왕국 2023. 1. 4.

왼쪽에 있는 데이터를 오른쪽에 있는 표 테이블에 입력하는 구문

 

 

Transpose 쓰기 없기로 했더니...아주 가~~~관이다..

 

잔머리님도 모카님 닮아가시는지

함수로 해결해버리셨다. 아~~ 고인물들

 

딱총님도 약간의 변형을 했지만 결국 엑셀 함수형으로 완성하였다

무지님만이 유일하게 For each 로 풀었다.

 

풀이를 하자면 찾는 상품명을 찾아서 그것을 Find_Cell로 선언한 후, Find_Cell을 순환하면서 각각의 값들을 셀에 찍는 코드이다.

 

아무리 트랜스포스를 안쓰려고 해도 이것보다 쉽고 간편한게 없어...슬쩍 트랜스포스 쓰고 달아나려한다.

더보기
Option Explicit
Sub 행렬변환A()

    Dim rngAll As Range: Set rngAll = [ae9:ah9]
    Dim rngA As Range
    Dim rngX As Range: Set rngX = [d10]
    
    Do Until rngX = ""
    
        For Each rngA In rngAll
        
            If rngA = rngX Then
            
                rngA(2, 1).Resize(24, 1) = Application.Transpose(rngX.Next.Resize(1, 24))  '= 행렬변환
            
            End If
        
        Next rngA
    
        Set rngX = rngX.Offset(1)
    
    Loop
    
End Sub
Sub 행렬변환B()

    Dim rngAll As Range: Set rngAll = [e8:i32]
    Dim rngA As Range
    Dim rngX As Range: Set rngX = [m9]
    
    Do Until rngX = ""
    
        For Each rngA In rngAll
        
            If rngA = rngX Then
            
                rngX.Next.Resize(1, 24) = Application.Transpose(rngA(2, 1).Resize(24, 1))  '= 행렬변환
            
            End If
        
        Next rngA
    
        Set rngX = rngX.Offset(1)
    
    Loop

End Sub

 

 

기초방#7 행렬변환.xlsm
0.02MB

Haja is 양아치~~~

댓글