[VBA] 셀 분리하여 다른 시트에 뿌리기
셀 분리하여 다른 시트에 뿌리기
셀 분리하여 다른 시트에 뿌리는 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
Cells(행, 열) 이 For Each 구문에서 rngC 의 값이 변하면서 변동되므로
Cells(행, "C") 로 행은 변하는 값이므로 rngC.Row 로 현재 행의 값을 구함
열은 뿌리고 싶은 열을 직접 지정함