Debbie có một trang tính có nhiều ngày tháng trong đó. Để nối dữ liệu với ngày tháng, cô ấy phải chỉnh sửa từng ô có chứa ngày tháng và thêm dấu nháy đơn trước ngày. Cô ấy tự hỏi nếu có một cách nhanh chóng để làm điều này. Cô ấy đã thử đánh dấu hàng và định dạng nó thành văn bản, nhưng điều đó không hiệu quả.

Nếu Debbie muốn tự động hóa công việc thủ công mà cô ấy đang làm, nó có thể được thực hiện bằng macro. Thao tác sau sẽ tự động chuyển đổi các ô đã chọn thành văn bản và chèn ngày trở lại vào ô.

Sub DateToText()

Dim cell As Range     Dim sTemp As String

For Each cell In Selection         With cell             sTemp = .Text             .NumberFormat = "@"

.Value2 = sTemp         End With     Next cell End Sub

Lưu ý việc sử dụng thuộc tính .Value2 thay vì thuộc tính .Value khi nhồi văn bản trở lại ô. Điều này được thực hiện để đảm bảo rằng Excel không vô tình chuyển đổi văn bản trở lại giá trị ngày tháng. Dù sao thì điều đó cũng không nên làm, nhưng thuộc tính .Value2 không hỗ trợ kiểu dữ liệu Ngày, vì vậy, về bản chất, mọi chuyển đổi tiềm năng đều bị loại trừ.

Bạn cũng nên lưu ý rằng macro sẽ chuyển đổi bất kỳ thứ gì bạn đã chọn, ngay cả khi nó không chứa ngày tháng. Bạn sẽ muốn đảm bảo rằng bạn chỉ chọn các ô chứa ngày tháng trước khi chạy nó.

Tất nhiên, cách dễ nhất để làm những gì Debbie đang cố gắng làm là sử dụng chức năng trang tính TEXT. Ví dụ, giả sử rằng ô A1 chứa một ngày. Trong một ô khác, bạn muốn đặt các từ “Hạn chót là” trước ngày. Bạn có thể làm điều đó với công thức như sau:

="The deadline is " & TEXT(A1, "mmmm d, yyyy")

Lưu ý rằng hàm TEXT yêu cầu hai tham số: Ô được chuyển đổi (A1, trong trường hợp này) và một mẫu để sử dụng trong chuyển đổi (“mmmm d, yyyy”). Nếu ô A1 chứa ngày 25/6/16 như vậy, thì công thức trả về như sau:

The deadline is June 25, 2016

Mẫu bạn chỉ định, trong dấu ngoặc kép, tuân theo rất chặt chẽ các mẫu bạn sẽ sử dụng để xác định định dạng tùy chỉnh cho một ô. Ví dụ: “mmm” trả về tên tháng gồm ba ký tự trong khi “mmmm”

trả về tên tháng được viết đúng chính tả. Các mã bạn sẽ sử dụng trong mẫu đã được đề cập trong các Mẹo Excel khác, nhưng bạn cũng có thể tìm thấy một bản tóm tắt hữu ích về các mã tương ứng với những gì Excel sử dụng tại Wikipedia:

https://en.wikipedia.org/wiki/Date_format_by_country

Một điểm thú vị liên quan đến cách tiếp cận này là cách ngày trong ô A1 được định dạng không thực sự quan trọng. Khi bạn sử dụng TEXT, nó dựa vào số sê-ri cơ bản được Excel sử dụng để lưu trữ ngày tháng, sau đó định dạng nó theo mẫu bạn chỉ định — độc lập với bất kỳ định dạng nào trong ô chứa ngày tháng.

Tất nhiên, nếu bạn muốn thực hiện chuyển đổi thẳng sang văn bản, bạn không cần phải nối bất kỳ thứ gì với ngày tháng. Trong trường hợp này, bạn chỉ cần sử dụng hàm TEXT:

=TEXT(A1, "mmmm d, yyyy")

Về bản chất, hàm TEXT trả về một giá trị văn bản chính xác.

_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 (13450) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.