Ievadiet brīvdienas saskaņā ar tabulu brīvdienu sarakstā, izmantojot VBA

Anonim

Jautājums:
Manā darblapā ir EmployeeName, HolidayStart un HolidayEnd. Kā noformēt katra darbinieka brīvdienas nākamo mēnešu lapās?

Atbilde:
Ievadiet šādu kodu ar XL5/7 ModuleSheet, ar XL8 vispārējā modulī, piešķiriet to pogai un palaidiet to.

Ievietojiet zemāk esošo kodu standarta modulī

Sub NewVacation () Dim rngFind As Range Dim intRow As Integer, intMonth As Integer, intCounter As Integer intRow = 3 Do Before IsEmpty (Cells (intRow, 1)) For intMonth = Month (Cells (intRow, 2)) To Month (Cells (intRow, 3)) Set rngFind = Worksheets (Format (DateSerial (1, intMonth, 1), "mmmm")). _ Kolonnas (1). Atrast _ (šūnas (intRow, 1), LookIn: = xlValues, lookat: = xlWhole) Ja intMonth = mēnesis (šūnas (intRow, 2)) un intMonth = _ mēnesis (šūnas (intRow, 3) ) Tad IntCounter = diena (šūnas (intRow, 2)) līdz dienai (šūnas (intRow, 3)) rngFind.Offset (0, intCounter). )) Tad IntCounter = diena (šūnas (intRow, 2)) līdz dienai (DateSerial _ (1, mēnesis (šūnas (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Nākamais intCounter Else Attiecībā uz intCounter = 1 līdz dienai (Šūnas (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Nākamais intCounter End If Next intMonth intRow = intRow + 1 Loop End Sub