VBA를 사용하여 휴일 목록에서 표에 따라 휴가를 입력
를 사용하여 공휴일 목록의 표에 따라 공휴일을 입력합니다. 질문 :
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