Có thể bạn quan tâm: Excel Cơ Bản Gồm Những Gì? – Hướng Dẫn Toàn Diện Từ A Đến Z
Giới thiệu chung về Date Picker trong Excel
Trong môi trường làm việc với dữ liệu, việc nhập ngày tháng là một trong những thao tác phổ biến nhưng cũng dễ gây lỗi. Người dùng thường gặp phải các vấn đề như:
– Nhập sai định dạng (ví dụ: 31/02/2026).
– Nhập ngày không hợp lệ (ví dụ: 2026-13-01).
– Thiếu đồng nhất trong toàn bộ bảng tính, gây khó khăn trong việc lọc, sắp xếp và phân tích dữ liệu.
Để giải quyết những vấn đề này, Date Picker (công cụ chọn ngày) trong Excel xuất hiện như một giải pháp tối ưu. Date Picker cho phép người dùng chọn ngày từ một lịch trực quan, giảm thiểu lỗi nhập liệu và đồng nhất định dạng ngày tháng trong toàn bộ workbook.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ cách bật tính năng Date Picker mặc định trong Excel, cách tạo Date Picker tùy chỉnh bằng VBA, đến các mẹo nâng cao để tích hợp Date Picker vào biểu mẫu, bảng tính động và các giải pháp thay thế khi bạn không có sẵn Add‑in.
Có thể bạn quan tâm: Excel Có In Được Không? – Hướng Dẫn Chi Tiết Từ A Tới Z Về Việc In Ấn Tài Liệu Từ Microsoft Excel
1. Kiểm tra phiên bản Excel và tính năng có sẵn
1.1. Excel 2026 trở lên (Windows)
- Excel 2026, 2026, 2026, 2026, Microsoft 365: Từ phiên bản 2026, Excel đã tích hợp sẵn Date Picker Control trong nhóm Controls của tab Developer (nếu bật).
- Lưu ý: Trên một số bản cài đặt, Control này có thể không hiển thị do thiếu thư viện “Microsoft Date and Time Picker Control” (msdtc.ocx). Khi đó bạn sẽ cần cài đặt lại hoặc sử dụng phương pháp thay thế (VBA UserForm).
1.2. Excel cho Mac
- Trên macOS, Date Picker mặc định không có trong bộ điều khiển ActiveX. Bạn sẽ phải dùng VBA để tạo UserForm hoặc sử dụng Add‑in của bên thứ ba.
1.3. Excel Online và Excel cho thiết bị di động
- Các phiên bản web và di động không hỗ trợ ActiveX. Tuy nhiên, có thể sử dụng Data Validation kết hợp với Dropdown để mô phỏng lựa chọn ngày, hoặc dùng Office Scripts (đối với Excel Online) để tạo giao diện tùy chỉnh.
Có thể bạn quan tâm: Cách Đếm Số Ô Không Trống (count Non‑empty Cells) Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Bật tab Developer (Nhà phát triển)
Để truy cập Date Picker, bạn cần bật tab Developer:
- File → Options → Customize Ribbon.
- Trong danh sách bên phải, tích vào Developer và nhấn OK.
Sau khi tab Developer xuất hiện, bạn sẽ thấy nhóm Controls với các biểu tượng Insert, Design Mode, Properties, v.v.
3. Cách chèn Date Picker vào ô bằng Control ActiveX
3.1. Các bước thực hiện
- Chuyển sang Design Mode: Trên tab Developer, nhấn Design Mode.
- Chọn Insert → ActiveX Controls → More Controls.
- Tìm Microsoft Date and Time Picker Control 6.0 (SP6) (hoặc phiên bản khác) và nhấn OK.
- Vẽ Date Picker vào vị trí mong muốn trên sheet. Thông thường, bạn sẽ đặt nó trên một ô trống hoặc ngay trên ô cần nhập ngày.
- Đặt tên (Name) cho control trong Properties (ví dụ:
dtpStartDate) để dễ quản lý. - Liên kết ô (LinkedCell): Trong cửa sổ Properties, nhập địa chỉ ô muốn lưu giá trị (ví dụ:
$B$2). Khi người dùng chọn ngày, giá trị sẽ tự động xuất hiện trong ô này. - Định dạng ngày: Thiết lập
Formattrong Properties (ví dụ:dd/mm/yyyy).
3.2. Lưu ý khi sử dụng ActiveX
- Tương thích: Control ActiveX chỉ hoạt động trên Windows, không hỗ trợ Excel Online, Mac và các thiết bị di động.
- Bảo mật: Khi mở file chứa ActiveX, Excel sẽ cảnh báo “Macros have been disabled”. Bạn cần cho phép macro để Date Picker hoạt động.
- Kích thước: Đôi khi Date Picker sẽ che khuất nội dung ô. Bạn có thể thiết lập
Visible = Falsevà hiển thị khi ô được chọn (sử dụng VBA).
4. Tạo Date Picker bằng VBA UserForm (phương pháp đa nền tảng)
4.1. Tại sao nên dùng UserForm?
- Khả năng tùy biến: Bạn có thể thiết kế giao diện, thêm nút “Hôm nay”, “Xóa”, v.v.
- Tương thích: Hoạt động trên Windows và Mac (trong môi trường VBA).
- Không phụ thuộc vào ActiveX: Giải quyết vấn đề thiếu thư viện trên một số máy tính.
4.2. Các bước tạo UserForm Date Picker
Bước 1: Mở VBA Editor
- Nhấn Alt + F11 để mở Visual Basic for Applications.
Bước 2: Thêm UserForm mới
- Trong Project Explorer, chuột phải vào VBAProject (TênFile.xlsm) → Insert → UserForm.
- Đặt tên UserForm là
ufDatePicker.
Bước 3: Thêm Calendar Control
Excel 2026 trở lên không còn có sẵn Calendar Control. Thay vào đó, chúng ta sẽ dùng Microsoft MonthView Control (nếu có) hoặc tạo một DatePicker bằng Microsoft Date and Time Picker Control (nếu có). Nếu không, chúng ta sẽ tạo lịch bằng ListBox và ComboBox, nhưng ở đây chúng ta sẽ dùng Microsoft Calendar Control 11.0 (có trong Office 2003). Đối với phiên bản mới, bạn có thể tải Microsoft Calendar Control từ nguồn bên thứ ba hoặc dùng DatePicker từ MSForms.
Giả sử bạn đã cài đặt Microsoft Calendar Control:
- Tools → Additional Controls → Microsoft Calendar Control 11.0.
- Kéo control vào UserForm, đặt tên
calDate.
Bước 4: Thêm nút “OK” và “Cancel”
- Thêm hai CommandButton:
cmdOK(Caption = “OK”) vàcmdCancel(Caption = “Cancel”).
Bước 5: Viết mã VBA cho UserForm
' Module level variable để lưu ô được chọn
Public TargetCell As Range ' Khi mở UserForm, set ngày mặc định
Private Sub UserForm_Initialize() If Not TargetCell Is Nothing Then If IsDate(TargetCell.Value) Then calDate.Value = TargetCell.Value Else calDate.Value = Date End If End If
End Sub ' OK button – ghi ngày vào ô và đóng form
Private Sub cmdOK_Click() If Not TargetCell Is Nothing Then TargetCell.Value = calDate.Value TargetCell.NumberFormat = "dd/mm/yyyy" End If Unload Me
End Sub ' Cancel button – chỉ đóng form
Private Sub cmdCancel_Click() Unload Me
End Sub
Bước 6: Gọi UserForm từ sự kiện Worksheet_SelectionChange
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) ' Kiểm tra nếu ô được chọn thuộc cột có muốn bật Date Picker (ví dụ: cột B) If Not Intersect(Target, Me.Range("B:B")) Is Nothing Then Set ufDatePicker.TargetCell = Target ufDatePicker.Show vbModal End If
End Sub
Giải thích:
– Khi người dùng chọn một ô trong cột B, macro sẽ mở UserForm ufDatePicker.
– Người dùng chọn ngày, nhấn OK → ngày được ghi vào ô và định dạng.
4.3. Tối ưu trải nghiệm người dùng
- Ẩn con trỏ: Khi UserForm mở,
Application.Cursor = xlWaitvàApplication.Cursor = xlDefaultsau khi đóng. - Kiểm soát lỗi: Thêm
On Error Resume Nextđể tránh lỗi khi ô không hợp lệ. - Thêm phím tắt: Gán
cmdOKcho phímEntervàcmdCancelchoEsctrongUserForm_KeyDown.
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then cmdOK_Click If KeyCode = vbKeyEscape Then cmdCancel_Click
End Sub
5. Sử dụng Data Validation để mô phỏng Date Picker (giải pháp không VBA)
Nếu bạn muốn một giải pháp nhanh, không cần macro, có thể dùng Data Validation kết hợp với Dropdown chứa danh sách các ngày trong một khoảng thời gian.
5.1. Tạo danh sách ngày
Giả sử bạn muốn cho phép người dùng chọn ngày trong năm hiện tại:
- Trong một sheet phụ (có thể ẩn), nhập ngày bắt đầu ở ô A1:
=DATE(YEAR(TODAY()),1,1). - Kéo công thức xuống tới cuối năm (
=A1+1). - Đánh dấu toàn bộ cột A (hoặc tới ngày cuối năm) và đặt tên cho phạm vi này: YearDates (Formulas → Define Name).
5.2. Áp dụng Data Validation
- Chọn ô cần nhập ngày (ví dụ:
C2:C100). - Data → Data Validation.
- Allow: List.
- Source:
=YearDates. - Nhấn OK.
Khi người dùng click vào ô, một danh sách dropdown sẽ xuất hiện với các ngày trong năm. Bạn có thể tùy chỉnh để hiển thị định dạng dd/mm/yyyy bằng cách thiết lập Number Format cho các ô.

Có thể bạn quan tâm: Phân Tích Dữ Liệu Trong Excel: Thống Kê Mô Tả (descriptive Statistics) Toàn Diện
5.3. Nhược điểm
- Danh sách có thể rất dài (365 mục), gây khó chịu khi scroll.
- Không có giao diện lịch trực quan.
- Không tự động điền ngày hiện tại.
6. Add‑in và công cụ bên thứ ba
Nếu bạn muốn một giải pháp mạnh mẽ hơn, có thể cân nhắc các Add‑in:
| Tên Add‑in | Nền tảng | Tính năng nổi bật | Giá |
|---|---|---|---|
| Kutools for Excel | Windows, Mac | Date Picker tích hợp, Bulk Date Insert, Calendar in cell | $39/năm |
| Ablebits Date Picker | Windows | Tùy chỉnh định dạng, hỗ trợ cho nhiều ngôn ngữ | $49/năm |
| Spreadsheet123 Calendar | Online | Calendar trực tuyến, chèn vào ô qua API | Miễn phí (có quảng cáo) |
| Excel Campus Add‑in | Windows | Macro Recorder + Date Picker, hướng dẫn video | $29/năm |
Các Add‑in này thường cung cấp toolbar riêng, cho phép bạn chèn Date Picker chỉ với một cú nhấp chuột, đồng thời hỗ trợ Excel Online thông qua Office.js.
7. Mẹo nâng cao khi làm việc với Date Picker
7.1. Định dạng ngày tự động cho toàn cột
Sau khi liên kết Date Picker với ô, bạn có thể áp dụng định dạng cho toàn cột:
Columns("B:B").NumberFormat = "dd/mm/yyyy"
Hoặc trong Home → Number → More Number Formats.
7.2. Giới hạn ngày được chọn
Bạn có thể giới hạn người dùng chỉ chọn ngày trong một khoảng (ví dụ: từ hôm nay đến 30 ngày tới) bằng cách kiểm tra trong cmdOK_Click:
If calDate.Value < Date Or calDate.Value > Date + 30 Then MsgBox "Ngày phải nằm trong khoảng từ hôm nay đến 30 ngày tới.", vbExclamation Exit Sub
End If
7.3. Đánh dấu ngày lễ tự động
Nếu bạn có danh sách ngày lễ trong một sheet (Holidays), bạn có thể tô màu các ngày trong Calendar Control:
Private Sub calDate_CalendarClick() Dim hol As Range For Each hol In Worksheets("Holidays").Range("A2:A50") If hol.Value = calDate.Value Then calDate.BackColor = vbRed ' Hoặc tô màu ô End If Next hol
End Sub
7.4. Kết hợp với Power Query
Khi dữ liệu ngày được nhập qua Date Picker, bạn có thể Load trực tiếp vào Power Query để thực hiện:
– Thêm cột “Tháng”, “Quý”, “Năm”.
– Tính ngày làm việc, ngày cuối tuần.
– Gộp dữ liệu theo khoảng thời gian.
8. Xử lý lỗi thường gặp
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
| Control không hiển thị | Thiếu file msdtc.ocx hoặc không đăng ký | Tải và đăng ký lại: regsvr32 msdtc.ocx (chạy dưới quyền admin) |
| Macro bị chặn | Security Settings > Disable all macros | Vào File → Options → Trust Center → Trust Center Settings → Macro Settings → Chọn “Enable all macros” (hoặc “Disable with notification”) |
| Date Picker không cập nhật ô | Thuộc tính LinkedCell sai hoặc ô được bảo vệ | Kiểm tra lại LinkedCell và chắc chắn sheet không ở chế độ Protect |
| Lỗi khi mở trên Mac | ActiveX không hỗ trợ | Dùng VBA UserForm hoặc Add‑in thay thế |
| Ngày hiển thị sai định dạng | Format của ô không được đặt | Đặt NumberFormat = "dd/mm/yyyy" trong VBA hoặc qua Format Cells |
9. Tích hợp Date Picker vào biểu mẫu (Forms) và Dashboard
9.1. Biểu mẫu nhập dữ liệu (Data Entry Form)
- Tạo một sheet “Form” với các nhãn (Label) và ô nhập dữ liệu.
- Chèn Date Picker (ActiveX hoặc UserForm) cho các ô ngày (ví dụ: “Ngày đặt hàng”, “Ngày giao hàng”).
- Nút “Lưu”: Ghi dữ liệu vào bảng dữ liệu (sheet “Data”) bằng macro:
Private Sub btnSave_Click() Dim ws As Worksheet: Set ws = Worksheets("Data") Dim nextRow As Long: nextRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1 ws.Cells(nextRow, 1).Value = txtOrderID.Value ws.Cells(nextRow, 2).Value = txtCustomer.Value ws.Cells(nextRow, 3).Value = dtpOrderDate.Value ws.Cells(nextRow, 4).Value = dtpDeliveryDate.Value MsgBox "Dữ liệu đã được lưu!", vbInformation ' Xóa nội dung form nếu cần txtOrderID.Value = "" txtCustomer.Value = "" dtpOrderDate.Value = Date dtpDeliveryDate.Value = Date
End Sub
9.2. Dashboard lọc theo ngày
Khi bạn có bảng dữ liệu chứa trường ngày, bạn có thể tạo Slicer cho PivotTable hoặc dùng Timeline (Insert → Timeline) để người dùng chọn khoảng thời gian. Nếu muốn kết hợp Timeline với Date Picker:
- Đặt một Cell (ví dụ:
E1) để người dùng chọn ngày bắt đầu bằng Date Picker. - Sử dụng công thức FILTER (Excel 365) hoặc Advanced Filter để lọc dữ liệu dựa trên ngày trong
E1.
=FILTER(Data!A:D, (Data!C:C >= $E$1) (Data!C:C <= $E$1 + 30))
10. Đánh giá tổng quan và lựa chọn giải pháp phù hợp
| Tiêu chí | ActiveX Date Picker | VBA UserForm | Data Validation | Add‑in bên thứ ba |
|---|---|---|---|---|
| Độ tương thích | Windows only | Windows & Mac | Tất cả (kể cả Online) | Windows, Mac (tùy Add‑in) |
| Độ phức tạp | Thấp (cài đặt nhanh) | Trung bình (cần viết VBA) | Rất thấp | Trung bình‑cao (cài đặt và phí) |
| Tính năng nâng cao | Hạn chế | Cao (có thể tùy chỉnh UI) | Không | Cao (công cụ tích hợp) |
| Bảo mật | Cần cho phép macro | Cần cho phép macro | Không cần macro | Thường yêu cầu macro hoặc quyền add‑in |
| Chi phí | Miễn phí (nếu có sẵn) | Miễn phí | Miễn phí | Có phí (thường $30‑$50/năm) |
Kết luận:
– Nếu bạn chỉ cần một Date Picker nhanh cho một vài ô trên Windows, ActiveX là lựa chọn tốt nhất.
– Nếu dự án của bạn cần tính đa nền tảng, giao diện tùy chỉnh hoặc muốn tránh phụ thuộc vào ActiveX, hãy dùng VBA UserForm.
– Khi muốn tránh macro hoàn toàn (đặc biệt là trong môi trường doanh nghiệp nghiêm ngặt), Data Validation là giải pháp tối thiểu.
– Đối với môi trường doanh nghiệp có ngân sách, Add‑in như Kutools mang lại trải nghiệm mượt mà và nhiều tính năng phụ trợ.
11. Bảo trì và cập nhật
- Sao lưu file: Trước khi thêm hoặc thay đổi Control, luôn sao lưu workbook (đặc biệt là file .xlsm có macro).
- Kiểm tra phiên bản Office: Khi Microsoft cập nhật Office, một số Control có thể bị xóa hoặc thay đổi. Kiểm tra thường xuyên trên Microsoft Docs để cập nhật.
- Đánh giá hiệu suất: Nhiều UserForm hoặc ActiveX trên một sheet có thể làm chậm Excel. Hãy tối ưu bằng cách chỉ hiển thị Date Picker khi cần và ẩn khi không dùng.
- Tài liệu nội bộ: Ghi chú trong VBA (Comment) và tạo hướng dẫn ngắn gọn cho người dùng cuối để họ hiểu cách sử dụng và bật macro.
12. Kết luận
Việc tích hợp Date Picker vào ô Excel không chỉ giúp giảm thiểu lỗi nhập ngày mà còn nâng cao tính chuyên nghiệp và đồng nhất của dữ liệu. Từ cách đơn giản nhất là sử dụng ActiveX Control cho Windows, đến việc xây dựng UserForm VBA đa nền tảng, hoặc áp dụng Data Validation cho môi trường không hỗ trợ macro, bạn luôn có một giải pháp phù hợp với nhu cầu và môi trường làm việc của mình.
Hãy lựa chọn giải pháp phù hợp, thực hiện các bước cài đặt và tùy chỉnh như trong bài viết, và bạn sẽ thấy quy trình nhập ngày trong Excel trở nên mượt mà, chính xác và ít lỗi hơn đáng kể. Chúc bạn thành công trong việc xây dựng các bảng tính thông minh, hiệu quả và thân thiện với người dùng!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
