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 ActiveX Control,'Microsoft Date and Time Picker Control 6.0 (SP6)' .

Giả 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ã Xem' từ trình đơn 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 (ByVal Target As Range) Với Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Vbroken = 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ể nhận thấy rằng chúng ta đã sử dụng toán tử 'With' để 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 ô 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ính 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 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 'With.'
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.

Now, whenever we select any cell in the ‘C’ column, we can see a drop-down calendar at the top right corner of the selected cell. We can open the drop-down calendar by clicking on the down arrow symbol.

We need to click on any date in the calendar in the selected month to enter that date in the selected cell.

We can change month to previous or next using the arrow button placed at the left and right side of the calendar.

We can also click on the month to choose a month from the drop-down.

We can also change year by clicking on year and then using up and down arrows to choose the required one.

Things to Remember

  • ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of 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.

thú vị bài viết...