Εισαγάγετε τις διακοπές σύμφωνα με τον Πίνακα στη λίστα διακοπών χρησιμοποιώντας VBA

Πίνακας περιεχομένων

Ερώτηση:
Έχω το EmployeeName, το HolidayStart και το HolidayEnd σε ένα φύλλο εργασίας. Πώς μπορώ να χρωματίσω τις διακοπές κάθε εργαζομένου στα φύλλα του επόμενου μήνα;

Απάντηση:
Εισαγάγετε τον ακόλουθο κώδικα με το XL5/7 σε ένα φύλλο στοιχείων, με το XL8 σε μια γενική μονάδα, αντιστοιχίστε τον σε ένα κουμπί και εκτελέστε τον.

Τοποθετήστε τον παρακάτω κώδικα στην τυπική μονάδα

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)) Ορισμός rngFind = Φύλλα εργασίας (Μορφή (DateSerial (1, intMonth, 1), "mmmm")). _ Στήλες (1). Εύρεση _ (Κελιά (intRow, 1), LookIn: = xlValues, lookat: = xlWhole) If intMonth = Month (Cells (intRow, 2)) And intMonth = _ Month (Cells (intRow, 3) ) Στη συνέχεια Για 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 )) Στη συνέχεια Για intCounter = Day (Cells (intRow, 2)) To Day (DateSerial _ (1, Month (Cells (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Επόμενο 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

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave