728x90

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


블로그 이미지

Link2Me

,