- Tham gia
- 8/6/06
- Bài viết
- 14,576
- Được thích
- 22,897
- Nghề nghiệp
- U80
Xin mời!
Bạn đặt macro này trong ThisWorkBoook
Nhưng khoan cho nó chạy; Mà phải thêm các động tác sau:
Tại trang 'CongNghi' bạn phải có chí ít dữ liệu như sau:
|. .|
H
|
I
|
2|| Ngày Lễ ||
3||1/1/2009|Đầu năm|
4|| 2/1/2009 | Ba mươi Tết |
5|| 2/2/2009 | Mùng MộtTết |
6|| 2/3/2009 | Mùng Hai Tết |
7|| 2/4/2009 | Mùng Ba Tết |
8|| 3/10/2009 | Gỗ Tổ |
9||4/30/2009|Ngày Thống nhất|
10||5/1/2009|Lao động|
11||9/2/2009|Quốc khánh|
12||11/12/2009|Truyền thống
13|||..|
Sau đó tô chọn vùng 'H3:H15' & gán nó với cái tên 'NghiLe' (ứng với dòng lệnh 1)
Hiện tại macro chỉ làm việc trong 5 ngày đầu của tháng (dòng lệnh 3);
Nếu ngày nghĩ lễ có ai đi làm thì bạn phải nhập bằng tay sau ngày 5 hàng tháng
Một số lưu í
(+) Để an tâm với các ngày dương lịch ta sử dụng công thức =DATE(Year(TODAY()),1,1) cho ô [H3]
=DATE(YEAR(TODAY()),9,2) cho [H11] , . . .
Chuyện này không thể áp dụng cho ngày âm!
(+) Chú í khi ngày lễ trùng với ngày CN,
(+) Lúc đầu, trong quá trình thử nghiệm, ta có thể vô hiệu hóa dòng lệnh 5; Khi đó cứ mở file lên là macro sẽ cập nhựt ngày lễ có trong tháng. Việc này sẽ làm ta tốn thêm thời gian. Việc tốn này về lâu dài là không cần thiết. Lúc đó ta lại hiệu lực hóa dòng lệnh 3 đó lại!
Bạn đặt macro này trong ThisWorkBoook
PHP:
Option Explicit
Private Sub Workbook_Open()
Dim Rng As Range, Clls As Range, Sh As Worksheet
Dim sRng As Range, Rngd As Range, Col As Byte
1 Set Rng = Range("NghiLe"): Set Sh = Sheets("Chamcong")
Set Rngd = Sh.[E2].Resize(, 31)
3 If Day(Date) > 5 Then Exit Sub
For Each Clls In Rng
Set sRng = Rngd.Find(Clls.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
Col = sRng.Column
Sh.Range(Sh.Cells(4, Col), Sh.Cells(Sh.[B65500].End(xlUp).Row, Col)).Value = "L"
End If
Next Clls
End Sub
Tại trang 'CongNghi' bạn phải có chí ít dữ liệu như sau:
2|| Ngày Lễ ||
3||1/1/2009|Đầu năm|
4|| 2/1/2009 | Ba mươi Tết |
5|| 2/2/2009 | Mùng MộtTết |
6|| 2/3/2009 | Mùng Hai Tết |
7|| 2/4/2009 | Mùng Ba Tết |
8|| 3/10/2009 | Gỗ Tổ |
9||4/30/2009|Ngày Thống nhất|
10||5/1/2009|Lao động|
11||9/2/2009|Quốc khánh|
12||11/12/2009|Truyền thống
13|||..|
Hiện tại macro chỉ làm việc trong 5 ngày đầu của tháng (dòng lệnh 3);
Nếu ngày nghĩ lễ có ai đi làm thì bạn phải nhập bằng tay sau ngày 5 hàng tháng
Một số lưu í
(+) Để an tâm với các ngày dương lịch ta sử dụng công thức =DATE(Year(TODAY()),1,1) cho ô [H3]
=DATE(YEAR(TODAY()),9,2) cho [H11] , . . .
Chuyện này không thể áp dụng cho ngày âm!
(+) Chú í khi ngày lễ trùng với ngày CN,
(+) Lúc đầu, trong quá trình thử nghiệm, ta có thể vô hiệu hóa dòng lệnh 5; Khi đó cứ mở file lên là macro sẽ cập nhựt ngày lễ có trong tháng. Việc này sẽ làm ta tốn thêm thời gian. Việc tốn này về lâu dài là không cần thiết. Lúc đó ta lại hiệu lực hóa dòng lệnh 3 đó lại!