일정한 간격으로 열을 삽입하는 방법에 대해
얘기하겠습니다. 간단해 보이지만, 열이 몇천 혹은
몇만개라면 그리 녹록치는 않습니다.
전화번호부를 예로 들어 얘기하겠습니다.
프린터로 출력하기 위해서(출력시에는 행반복을 사용하면 됩니다만, 여기선 잠시..^^) 혹은 다른 이유로 일정한 수의 열마다 "이름", "전화번호", "휴대폰번호" 등의 타이틀을 추가해야 하는 경우 행의 수가 많지 않으면 직접 셀을 삽입하고 타이틀을 타이핑하면 됩니다.
하지만, 행의 수가 몇백개만 되어도 작업을 하고자 생각만 해도 머리가 지끈거립니다.
Sub InsertRow()
Dim targetrow as long
Dim rownum as long
Dim ccount as long
rownum=range("A" & Rows.Count).End(xlUp).Row
targettow=1
ccount=1
Do
If ccount =16 then
Rows(targetrow).Insert Shift:=xlDown
Cells(targetrow,1).value="이름"
Cells(targetrow,2).value="전화번호"
ccount=1
rownum=Range("A"&Rows.count).End(xlup).Row
Else
ccount=ccount+1
End if
targetrow=targetrow+1
Loop While targetrow<>rownum
End Sub
Range("A" & Rows.Count).End(xlup).Row
행의 갯수를 먼저 알아야 합니다.
Range("A" & Rows.Count).End(xlUp).Row 는 A열의 데이터가 포함되어 있는 행의 갯수를 셉니다. 즉, 데이터가 있는 마지막 열의 열번호를 반환합니다.
그 다음엔 반복문을 사용하여 셀을 삽입하면 되겠네요. 위에서 보여드린 코드에서는 셀을 삽입하고 타이틀까지 입력되게 했습니다.
반복문은 Do-while 문을 사용했구요. for-next 를 사용해도 가능할 것 같네요.
Sub InsertRow()
Dim rownum as long
Dim r1 as long
rownum=Range("C"&Rows.count).End(xlup).row
For r1=16 to rownum step 16
Rows(r1).insert shift:=xldown
Cells(r1,1).value="이름"
Cells(r1,2).value="전화번호"
next r1
End sub
코드가 훨씬 간결해 졌습니다.^^
이상입니다.
'Macros' 카테고리의 다른 글
[Excel] 엑셀매크로-엑셀에서 현재시간을 저장할 수 있나요. (2) | 2016.02.13 |
---|---|
스핀단추, 목록상자, 콤보상자 외-양식컨트롤 알아보기 (0) | 2015.12.28 |
[엑셀] 셀서식이너무많습니다. (11) | 2015.12.01 |
free Add-ins 엑셀 추가기능 (0) | 2015.11.28 |
셀 병합시 내용유지하기 (5) | 2015.11.27 |