Pomoću VBA upišite praznik prema tablici na popisu praznika

Anonim

Pitanje:
Na radnom listu imam Ime zaposlenika, HolidayStart i HolidayEnd. Kako mogu obojiti praznike svakog zaposlenika u listovima sljedećih mjeseci?

Odgovor:
Unesite sljedeći kôd s XL5/7 u tablicu modula, s XL8 u opći modul, dodijelite ga gumbu i pokrenite ga.

Unesite donji kôd u standardni modul

Sub NewVacation () Dim rngFind As Range Dim intRow As Integer, intMonth As Integer, intCounter As Integer intRow = 3 Do Do IsEmpty (ćelije (intRow, 1)) Za intMonth = Mjesec (ćelije (intRow, 2)) do mjeseca (ćelije (intRow, 3)) Postavi rngFind = Radni listovi (Format (DateSerial (1, intMonth, 1), "mmmm")). _ Stupci (1). Pronađi _ (Ćelije (intRow, 1), LookIn: = xlValues, traži: = xlWhole) Ako je intMonth = Month (Ćelije (intRow, 2)) I intMonth = _ Mjesec (Ćelije (intRow, 3) ) Zatim Za intCounter = Dan (ćelije (intRow, 2)) do dana (ćelije (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Sljedeći intCounter OstaloIf intMonth = Month (Ćelije (intRow, 2 )) Zatim za intCounter = Dan (ćelije (intRow, 2)) do dana (DateSerial _ (1, mjesec (ćelije (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interijer.ColorIndex = 3 Sljedeći intCounter Ostalo Za intCounter = 1 To Day (ćelije (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Sljedeći intCounter End If Sljedeći intMonth intRow = intRow + 1 Loop End Sub