Indtast ferien i henhold til tabellen i ferielisten ved hjælp af VBA

Anonim

Spørgsmål:
Jeg har EmployeeName, HolidayStart og HolidayEnd i et regneark. Hvordan kan jeg farve ferien for hver medarbejder i de følgende månedsark?

Svar:
Indtast følgende kode med XL5/7 i et ModuleSheet, med XL8 i et generelt modul, tildel det til en knap og kør det.

Placer koden herunder i standardmodulet

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)) Indstil rngFind = Regneark (Format (DateSerial (1, intMonth, 1), "mmmm")). _ Kolonner (1). Find _ (Cells (intRow, 1), LookIn: = xlValues, lookat: = xlWhole) If intMonth = Month (Cells (intRow, 2)) And intMonth = _ Month (Cells (intRow, 3) ) Så For intCounter = Day (Cells (intRow, 2)) To Day (Cells (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Næste intCounter ElseIf intMonth = Month (Cells (intRow, 2 )) Så For intCounter = Day (Cells (intRow, 2)) To Day (DateSerial _ (1, Month (Cells (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Næste 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