250 부터 650개씩 10씩 숫자가 줄어들게 채우는 VBA 코드입니다.
이 코드는 RGB 색상표를 만들기 위해 작성한 것인데 기본 숫자를 다루는 겁니다.
변수 선언을 Integer 로 하면 메모리 크기가 2byte 로 값은 -32,768 ~ 32,767 입니다.
Range 범위가 Integer 범위를 넘어가면 Long(4byte), Singe(8byte), Double(8byte) 로 선언해야 합니다.
Sub 숫자채우기()
Dim rngC As Range
Dim i As Integer
Dim Temp As Integer
Temp = 250
For Each rngC In Range("A655:A17000") '// Range 범위구간동안 rngC (각 셀)을 순환
If rngC.Offset(-1, 0) = Temp Then '// 상위 셀과 Temp 값이 서로 같으면
rngC = Temp '// Temp 값을 현재 셀에 넣어라
i = i + 1 '// 몇개를 카운트 한 것인지 알기 위해 숫자를 카운트하라
End If
If i = 650 Then '// i 가 650 이면
i = 0 '// i 를 초기화하라
rngC = rngC.Offset(-1, 0) - 10 '// 그리고 상위 셀에서 10을 빼라. 즉 10을 감소하라
Temp = rngC '// Temp 변수에 10을 뺀 값을 넣어라
If Temp < 0 Then Exit For '// 만약 Temp 값이 0 보다 작으면 For 문을 빠져나가라
End If
Next rngC '// rngC(현재셀)의 다음셀로 이동해서 For 문을 반복하라
End Sub
Sub B열숫자채우기()
Dim rngC As Range
Dim i As Integer
For Each rngC In Range("B6:B16913")
If rngC.Offset(-1, 0) = 250 Then '// 각 셀을 반복하다가 상위 셀이 250이면 현재 셀을 0으로 놓아라
rngC = 0
Else
rngC = rngC.Offset(-1, 0) + 10 '// 상위셀에다가 10을 더하여 현재 셀에 넣어라
End If
Next rngC
End Sub
Sub C열숫자복사하기()
Dim rngC As Range
Dim rngAll As Range
For Each rngC In Range("C681:C16913")
Set rngAll = Range("C5:C680")
rngAll.Copy Cells(Rows.Count, "C").End(3)(2) '// 범위구간 전체(C5:C680)를 복사하여
'//C열의 값이 들어있는 마지믹 열에 넣어라
Next rngC
End Sub
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
[VBA기초] 엑셀 특정 시트만 제외하고 모든 시트 삭제 (0) | 2015.04.19 |
---|---|
[VBA기초] RGB 색상표 (0) | 2015.04.05 |
[VBA] 배열의 이해 (0) | 2015.03.29 |
[VBA기초] 셀 지우기 (0) | 2015.03.23 |
엑셀 행높이 자동 설정 and VBA 를 이용한 행높이 자동 설정 (0) | 2015.01.02 |