특정 조건에 행삽입과 색상변경을 해주는 VBA
2024. 11. 8. 18:01
7행에 상품코드가 있고 3행에 날짜가 있는 데이터에서 특정 조건마다 행삽입과 색상변경을 해주는 VBA 코드 리뷰
피벗을 사용하지 않고도 상품코드별로 쉽게 구분해서 볼 수 있고,
입고일/소비기한 중 중요한 날짜데이터를 한 눈에 알아볼 수 있도록 색상을 변경해주는 것을 목표로 합니다.
Dim RowNum, r1 As Integer
Dim Today As Date
r1 = Cells(Rows.Count, "A").End(xlUp).Row - 1
Today = Now
1) 우선, 사용하고자 하는 변수의 자료형을 정의해줍니다
셀의 위치값을 표현하기 위해 RowNum, r1을 정수 Integer로 정의하고
Today라는 변수는 날짜와 시간의 자료형 Date로 정의해줍니다.
2) Today는 현재로 지정합니다
3) r1은 데이터의 A열, 가장 마지막 행으로 이동해서
Rows.Count: 현재 워크시트에서 총 행의 수를 반환합니다.
Cells(Rows.Count, "A"): A열의 마지막 셀(즉, A1048576 셀)을 참조합니다.
.End(xlUp): 마지막 셀에서 위쪽으로 이동하여 첫 번째 비어있지 않은 셀을 찾습니다.
A열의 가장 마지막 데이터가 있는 행으로 이동하는 것입니다.
.Row: 비어있지 않은 셀의 행 번호를 반환합니다.
- 1: 마지막 데이터가 있는 행에서 1을 빼므로, 마지막 데이터가 있는 행의 바로 위 행 번호를 의미합니다.
Sub 행삽입()
Dim RowNum, r1 As Integer
Dim Today As Date
r1 = Cells(Rows.Count, "A").End(xlUp).Row - 1
Today = Now
For RowNum = r1 To 3 Step -1
If Cells(RowNum, 7) <> Cells(RowNum - 1, 7) Then
' 행삽입
Cells(RowNum, 1).EntireRow.Insert
End If
' 3행의 값이 Today=Now 오늘보다 크다면 즉, 미래라면 i열의 1~20까지의 범위의 색상을 변경해줘
If Cells(RowNum, 3) > Today Then
Cells(RowNum, 1).Resize(1, 20).Interior.Color = RGB(198, 224, 180)
End If
Next RowNum
End Sub
'VBA 이론' 카테고리의 다른 글
범위 선택, Function() (0) | 2024.11.21 |
---|---|
파일을 실행하는 VBA (1) | 2024.11.19 |
영어 주소지를 한글로 변환해주는 VBA (3) | 2024.11.15 |
InputBox, 반복문 For (0) | 2024.11.12 |
Range, Cell : 데이터 입력하기, 지우기 (0) | 2024.11.11 |