Brian muốn nhập ngày bằng cách chỉ nhập tháng và ngày.

Excel giả định năm là năm hiện tại, nhưng anh ta muốn lấy năm là năm cho lần tiếp theo ngày đó xảy ra. Ví dụ: nếu hôm nay là 6/1/18 và Brian nhập 7/1, thì Excel sẽ tự động giả định là năm 2018. Nếu Brian nhập 5/1 vào cùng một ngày, thì Excel sẽ giả định là năm 2019, là 5/1 đã là trong quá khứ. Brian biết anh ấy có thể sử dụng một công thức để hiển thị ngày tháng trong một ô khác nhưng tự hỏi làm thế nào anh ấy có thể đặt Excel để mặc định cho phương pháp này khi anh ấy đang nhập ngày tháng vào các ô.

Không cần xem xét ngày hệ thống của bạn hoặc thực hiện một số chỉnh sửa đối với ngày sau khi nhập, giải pháp yêu cầu sử dụng macro. Trình xử lý sự kiện sau sẽ thực hiện thủ thuật:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target = "" Then Exit Sub

If IsDate(Target) Then         If Target < Date Then             If Year(Target) = Year(Date) Then                 Application.EnableEvents = False                     Target.Value = DateAdd("yyyy", 1, Target)

Application.EnableEvents = True             End If         End If     End If End Sub

Để thêm macro này vào sổ làm việc của bạn, chỉ cần nhấp chuột phải vào tab của trang tính mà bạn muốn nó hoạt động, sau đó chọn Mã Chế độ xem. Trong cửa sổ mã kết quả, hãy thêm macro ở trên.

Bây giờ, bất cứ khi nào bạn thực hiện thay đổi trong trang tính, nó sẽ được kiểm tra xem đó có phải là ngày hay không. Nếu đúng, và ngày trước ngày hôm nay, thì một năm sẽ được thêm vào ngày. Lưu ý rằng mã kiểm tra để đảm bảo rằng năm của ngày được nhập giống với năm hiện tại. Nếu không có séc này, bất kỳ ngày nào trong quá khứ — thậm chí là những ngày trong quá khứ nhiều năm — sẽ được tăng lên. Điều này có lẽ không được dự định, vì vậy kiểm tra được bao gồm.

Macro sẽ không ảnh hưởng đến ngày được nhập vào nhiều ô cùng một lúc, cũng như không ảnh hưởng đến ngày được nhập dưới dạng giá trị văn bản.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (13601) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.