Bộ chọn ngày trong Excel | Làm thế nào để Chèn Bộ chọn Ngày (Lịch) trong Excel?
Làm thế nào để Chèn Bộ chọn Ngày trong Excel?
Để chèn Lịch thả xuống, chúng tôi sẽ sử dụng Điều khiển ActiveX là 'Điều khiển Bộ chọn Ngày và Giờ của Microsoft 6.0 (SP6)' .
Bạn có thể tải xuống Mẫu Excel Bộ chọn Ngày này tại đây - Mẫu Excel Bộ chọn NgàyGiả sử, chúng ta phải duy trì dữ liệu cho nhân viên của một công ty. Có một số trường như
- Mã trống
- Tên trống
- Ngày tham gia Emp
- Bộ phận trống
Để nhập dữ liệu trong MS Excel, chúng tôi đã tạo định dạng sau.
Để nhập Ngày tham gia Emp, chúng ta cần tạo một lịch thả xuống để người dùng nhập ngày tham gia dễ dàng hơn.
Để tạo lịch thả xuống, các bước được đưa ra dưới đây:
Chúng tôi cần chèn một 'điều khiển ActiveX' có tên 'Microsoft Date and Time Picker Control 6.0 (SP6)' . Để chèn, chúng tôi sẽ sử dụng lệnh 'Chèn' trong nhóm 'Điều khiển' trong 'Nhà phát triển'
Nếu tab 'Nhà phát triển' không hiển thị, dưới đây là các bước cần làm để hiển thị tab tương tự.
- Bước 1: Trong menu 'Tệp' , chọn 'Tùy chọn'
- Bước 2: Một hộp thoại có tên 'Tùy chọn Excel' sẽ mở ra. Chọn 'Tùy chỉnh ruy-băng' từ cạnh trái của hộp thoại. Hộp kiểm cho tab 'Nhà phát triển' và nhấp vào 'OK' .
- Bước 3: Bây giờ chúng ta có thể thấy tab 'Nhà phát triển' ở cuối dải băng.
- Bước 4: Chọn 'More Controls' từ ActiveX Controls.
- Bước 5: Chọn 'Microsoft Date and Time Picker Control 6.0 (SP6)' từ danh sách và nhấp vào 'OK' .
- Bước 6: Nhấp vào bất kỳ đâu trên trang tính để tạo lịch thả xuống.
- Bước 7: Nhấp chuột phải vào 'Công cụ chọn ngày' và chọn 'Thuộc tính' từ danh sách.
- Bước 8: Thay đổi giá trị từ 'False' thành 'True' cho thuộc tính 'CheckBox' để các giá trị rỗng cũng có thể được chấp nhận. Đóng hộp thoại 'Thuộc tính' .
- Bước 9: Nhấp chuột phải vào Công cụ chọn ngày một lần nữa và chọn 'Mã Chế độ xem' từ menu ngữ cảnh.
- Bước 10: Trong 'Visual Basic Editor' , chúng ta có thể thấy rằng một số mã đã được viết. Thay thế mã bằng mã sau.
Mã:
Private Sub Worksheet_SelectionChange (ByVa l Target As Range) Với Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Không có gì thì .Vible = True .Top = Target.Top .Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Vosystem = False End If End With End Sub
- Bước 11: Câu lệnh đầu tiên trong mã yêu cầu Trình biên dịch MS Excel chạy mã bất cứ khi nào một ô mới được chọn (Lựa chọn được thay đổi). Ô đã chọn sẽ được gửi đến thủ tục Phụ là 'Mục tiêu' .
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
- Bước 12: Các câu lệnh này đặt chiều cao và chiều rộng của Công cụ chọn ngày thành 20 điểm trong excel. Có thể thấy rằng chúng tôi đã sử dụng toán tử 'With' để chúng tôi không cần phải tham chiếu đến DTPicker1 một lần nữa.
Với Sheet1.DTPicker1 .Height = 20 .Width = 20
- Bước 13: Sau đây 'Nếu' khoản đặt tiêu chí rằng nếu bất kỳ tế bào được chọn trong 'C' cột, chỉ sau đó ngày Picker được tầm nhìn. Chúng ta đã sử dụng hàm 'Intersect' vì hàm này kiểm tra xem chúng ta đã chọn bất kỳ ô nào trong cột C hay chưa, sau đó hàm này sẽ trả về địa chỉ nếu không giá trị sẽ là null.
Nếu Không Giao nhau (Mục tiêu, Phạm vi ("C: C")) Không có gì thì.
- Bước 14: Thuộc tính 'Trên cùng' của Bộ chọn ngày được đặt bằng giá trị thuộc tính 'Trên cùng' của ô Đã chọn. Nó có nghĩa là nó sẽ đi cùng với đường viền trên của ô đã chọn.
.Top = Target.Top
- Bước 15: Câu lệnh này đặt thuộc tính bên trái của Bộ chọn ngày bằng thuộc tính của ô bên phải tiếp theo của ô được chọn (Khoảng cách của đường viền bên trái của cột D từ cực trái của trang tính). Để lấy tham chiếu của ô bên phải tiếp theo, chúng tôi đã sử dụng hàm 'Offset' với 0 là đối số hàng và 1 là đối số cột vì điều này sẽ nhận được tham chiếu đến ô trong cột tiếp theo.
.Left = Target.Offset (0, 1) .Left
- Bước 16: Câu lệnh này liên kết Bộ chọn ngày với ô Mục tiêu để giá trị nào được chọn trong lịch thả xuống được hiển thị trong ô.
.LinkedCell = Target.Address
- Bước 17: Câu lệnh 'Khác' yêu cầu trình biên dịch không hiển thị Bộ chọn ngày khi bất kỳ ô nào ngoại trừ ô trong cột C được chọn.
Khác .Vible = Sai
- Bước 18: Cuối cùng, chúng tôi đóng 'Nếu'
Kết thúc nếu
- Bước 19: Cuối cùng, chúng ta cần đóng 'Với'
Kết thúc với
- Bước 20: Bây giờ, Thủ tục phụ sẽ kết thúc.
Kết thúc Sub
Đảm bảo rằng chúng tôi lưu tệp với phần mở rộng '.xlsm' vì nó lưu mã VBA mà chúng tôi đã viết và chúng tôi sẽ có thể chạy mã này khi bất kỳ ô nào được chọn trong cột C.
Bây giờ bất cứ khi nào chúng ta chọn bất kỳ ô nào trong cột 'C', chúng ta có thể thấy lịch thả xuống ở góc trên cùng bên phải của ô đã chọn. Chúng ta có thể mở lịch thả xuống bằng cách nhấp vào biểu tượng mũi tên xuống.
Chúng ta cần nhấp vào bất kỳ ngày nào trong lịch trong tháng đã chọn để nhập ngày đó vào ô đã chọn.
Chúng ta có thể thay đổi tháng thành trước đó hoặc tiếp theo bằng cách sử dụng nút mũi tên được đặt ở bên trái và bên phải của lịch.
Chúng tôi cũng có thể nhấp vào tháng để chọn một tháng từ trình đơn thả xuống.
Chúng ta cũng có thể thay đổi năm bằng cách nhấp vào năm và sau đó sử dụng mũi tên lên và xuống để chọn năm cần thiết.
Những điều cần ghi nhớ
- 'Microsoft Date and Time Picker Control 6.0 (SP6)' không khả dụng cho phiên bản 64-bit của MS Excel.
- Sau khi viết mã VBA, chúng ta cần lưu tệp với phần mở rộng '.xlsm' (Excel Macro-Enabled Workbook) nếu không mã VBA sẽ không chạy.