728x90

이번 포스팅은 VBA로 선택한 셀값의 콤마 기준으로 단어를 나누는 코드와 이것을 해석하는 내용을 작성하겠다.

 


 

Sub 테스트()

    Dim rngC, rngAll As Range
    Dim r, k As Long
    Dim tmp

    Set rngAll = Selection
    
    r = 1
    For Each rngC In rngAll
        tmp = Split(rngC.Offset(0, 0), ",")
        For k = LBound(tmp) To UBound(tmp)
            r = r + 1
            
            Sheets("Sheet1").Cells(r, "E") = tmp(k)
    
        Next k
    Next rngC

End Sub

(소스만 필요하신 분은 위에 코드블럭을 이용해주세요.)

 

설명은 아래 코드블럭에 있습니다.

Sub 테스트()

    Dim rngC, rngAll As Range // 지역변수 각각 rngC, rngAll을 Range 데이터타입으로 선언
    Dim r, k As Long // 지역변수 r, k를 Long 타입으로 선언
    Dim tmp // 지역변수 tmp는 Variant 타입으로 선언

    Set rngAll = Selection //위에서 선언했던 rngAll변수에 선택한 값을 저장한다.
    
    r = 1 // 이 변수는 콤마기준으로 분리시킨 값들을 각 셀에 저장할 때마다
          // 한칸씩 늘려나가기 위한 값이다.
    
    For Each rngC In rngAll // 선택한 값이 여러가지 인 경우 rngC에 셀값을 각각 저장한다
                            // 모든 선택한 셀을 거칠 때까지 반복
                            
        tmp = Split(rngC.Offset(0, 0), ",")  // 선택한 값의 콤마가 있으면 분리시켜서 
                                             // tmp에 각각 저장
        
        For k = LBound(tmp) To UBound(tmp) // tmp는 split 함수를 통해 배열로 값이 담겨있어서
                                           // Bound 함수를 통해 배열의 개수 만큼만 반복한다.
            r = r + 1
            
            Sheets("Sheet1").Cells(r, "E") = tmp(k) // 시트 1에 (r,"E")에 위치한 셀에 
                                                    // 콤마 기준으로 분리시킨 값을 입력한다.
    
        Next k
    Next rngC

End Sub

 


이제 실행했을 때의 이미지이다.

 

화면처럼 드래그 후 매크로를 실행
좌측과 같이 콤마기준으로 나눠진 것을 확인

 

728x90
TOP