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
'기타 > Excel(VBA)' 카테고리의 다른 글
VBA 예제 ] VBA코드로 선택한 값이 특정값일 때 행전체 삭제(2탄) (4) | 2021.01.16 |
---|---|
VBA 기초] 디버깅 및 값 출력 / VBA코드 사용방법(2탄) (0) | 2021.01.15 |
VBA 예제 ] VBA코드로 선택한 값이 특정값일 때 행전체 삭제 (3) | 2020.04.06 |
VBA 응용] VBA로 함수 만들기 / VBA코드리뷰 / 널(빈)값채우기 예제 (0) | 2020.04.03 |
VBA 기초] 엑셀 매크로 사용방법 / VBA코드 사용방법 (0) | 2020.04.02 |