Kysymys:
Minulla on EmployeeName, HolidayStart ja HolidayEnd laskentataulukossa. Kuinka voin värittää jokaisen työntekijän vapaapäivät seuraavien kuukausilehtien aikana?
Vastaus:
Kirjoita seuraava koodi XL5/7: llä ModuleSheet -sivulle ja XL8 yleiseen moduuliin, määritä se painikkeelle ja suorita se.
Aseta alla oleva koodi vakiomoduuliin
Sub NewVacation () Dim rngFind As Range Dim intRow kuten Integer, intMonth As Integer, intCounter As Integer intRow = 3 Do Until IsEmpty (Solut (intRow, 1)) For intMonth = Month (Solut (intRow, 2)) Kuukauteen (Solut (intRow, 3)) Aseta rngFind = laskentataulukot (Muoto (DateSerial (1, intMonth, 1), "mmmm")). _ Sarakkeet (1). Etsi _ (Solut (intRow, 1), LookIn: = xlValues, lookat: = xlWhole) If intMonth = Month (Solut (intRow, 2)) Ja intMonth = _ Month (Solut (intRow, 3) ) Sitten For intCounter = Day (Solut (intRow, 2)) To Day (Solut (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Seuraava intCounter ElseIf intMonth = Month (Solut (intRow, 2) )) Sitten IntCounter = Päivä (Solut (intRow, 2)) Päivään (DateSerial _ (1, Month (Solut (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Seuraava intCounter Else IntCounterille = 1 Päivälle (Solut (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Seuraava intCounter End If Next intMonth intRow = intRow + 1 Loop End Sub