'셀분리하여 다른 시트에 뿌리기'에 해당되는 글 1건

728x90

셀 분리하여 다른 시트에 뿌리기


셀 분리하여 다른 시트에 뿌리는 VBA 입니다.

바로 앞의 게시물과 동일한데 결과만 다른 시트에 뿌리는 것입니다.


Sub Cell_MultiSplit()
    Dim rngC    As Range   '// 한 Cell 씩 변하는 변수 지정
    Dim rngTarget As Range '// 대상 범위 지정변수
    Dim varTemp() As String  '// 전체영역을 넣기위한 variant형 string 변수
    Dim deLimiter As String  '// 문자 구분자 변수
   
    Application.ScreenUpdating = False  '화면 업데이트 (일시)정지

    Set rngTarget = Columns(1).SpecialCells(2)
    '// SpecialCells(2) : 상수가 들어있는 셀
  
    deLimiter = "/"             '//문자 구분자
        For Each rngC In rngTarget
            varTemp = Split(rngC, deLimiter)       '//선택한 셀을 쪼개서 배열에 넣음
            'rngC.Offset(, 2).Resize(1, UBound(varTemp) + 1) = varTemp   '//현재 Sheet 에 뿌림
            '// Resize(RowSize,ColumnSize) : 지정된 범위의 크기를 조정
            '// Rowsize : 새 범위의 행 수를 지정
            '// ColumnSize : 새 범위의 열 수를 지정
            '// Ubound(arrayname, dimension) : 배열에서 지정된 차원의 최대 범위를 Long으로 반환
            '// arrayname : 배열 변수의 이름
            '// dimension 은 생략하면 1차원을 의미
            With Sheet2
                .Cells(rngC.Row, "C").Resize(1, UBound(varTemp) + 1) = varTemp
                .Columns("C:G").AutoFit
            End With
        Next rngC
    Set rngTarget = Nothing '// 변수 초기화
    MsgBox "작업완료"
   
End Sub

Cell_Split_VBA_othersht.vbs

Cell_Split_VBA_othersht.xlsm


Cells(행, 열) 이 For Each 구문에서 rngC 의 값이 변하면서 변동되므로

Cells(행, "C") 로 행은 변하는 값이므로 rngC.Row 로 현재 행의 값을 구함

열은 뿌리고 싶은 열을 직접 지정함




블로그 이미지

Link2Me

,