를 사용하여 공휴일 목록의 표에 따라 공휴일을 입력합니다. 질문 :

Worksheet에 EmployeeName, HolidayStart 및 HolidayEnd가 있습니다. 다음 달 시트에서 각 직원의 휴일을 어떻게 색칠 할 수 있습니까?

답변 :

ModuleSheet에 XL5 / 7과 함께 다음 코드를 입력하고 일반 모듈에 XL8을 입력하고 Button에 할당하고 실행합니다.

아래 코드를 표준 모듈에 넣으세요

Sub NewVacation()

Dim rngFind As Range

Dim intRow As Integer, intMonth As Integer, intCounter As Integer

intRow = 3

Do Until IsEmpty(Cells(intRow, 1))

For intMonth = Month(Cells(intRow, 2)) To Month(Cells(intRow, 3))

Set rngFind = Worksheets(Format(DateSerial(1, intMonth, 1), "mmmm")). _

Columns(1).Find _

(Cells(intRow, 1), LookIn:=xlValues, lookat:=xlWhole)

If intMonth = Month(Cells(intRow, 2)) And intMonth = _

Month(Cells(intRow, 3)) Then

For intCounter = Day(Cells(intRow, 2)) To Day(Cells(intRow, 3))

rngFind.Offset(0, intCounter).Interior.ColorIndex = 3

Next intCounter

ElseIf intMonth = Month(Cells(intRow, 2)) Then

For intCounter = Day(Cells(intRow, 2)) To Day(DateSerial _

(1, Month(Cells(intRow, 2)) + 1, 0))

rngFind.Offset(0, intCounter).Interior.ColorIndex = 3

Next intCounter

Else

For intCounter = 1 To Day(Cells(intRow, 3))

rngFind.Offset(0, intCounter).Interior.ColorIndex = 3

Next intCounter

End If

Next intMonth

intRow = intRow + 1

Loop

End Sub