Aileen làm việc với nhiều tài liệu có ngày ở định dạng số, chẳng hạn như 9/22/12. Cô ấy cần chuyển đổi những ngày này sang một định dạng khác, cụ thể là ngày 22 tháng 9 năm 2012. Cô ấy tự hỏi liệu có cách nào dễ dàng để thực hiện thay đổi mà không cần phải nhập lại từng ngày không.

Câu trả lời phụ thuộc phần lớn vào bản chất của ngày bạn đang thay đổi. Ngày trong tài liệu Word có thể là văn bản thẳng hoặc một trường. Bạn có thể biết ngày có phải là một trường hay không bằng cách di chuyển điểm chèn vào đâu đó bên trong ngày. Nếu đó là một trường, thì toàn bộ ngày sẽ được tô bóng bằng màu xám nhạt khi điểm chèn nằm trong ngày.

Nếu ngày là một trường, thì bạn có thể nhấp chuột phải vào ngày và chọn Chỉnh sửa Trường từ trình đơn Ngữ cảnh kết quả. Sau đó, bạn có thể sửa đổi trường, bao gồm việc chọn một định dạng ngày khác trong danh sách Thuộc tính Trường.

Nếu ngày là văn bản thông thường (không phải trường), thì bạn cần phải tìm một giải pháp khác. Có thể xem qua tài liệu và gõ lại thủ công tất cả các ngày tháng, nhưng Aileen đã phát hiện ra rằng cách tiếp cận như vậy là tẻ nhạt. Đây là lúc mà macro có thể hữu ích: để giải quyết sự tẻ nhạt bằng cách lập trình làm những gì bạn sẽ làm bằng tay.

Macro sau sẽ duyệt qua một tài liệu, tìm kiếm tất cả các ngày ở định dạng m / d / yyyy. (Có thể có một hoặc hai chữ số cho tháng hoặc ngày, nhưng phải có bốn chữ số cho năm.) Nếu tìm thấy ngày phù hợp với mẫu này, ngày đó sẽ được chuyển đổi sang định dạng mmmm d, yyyy.

Sub GetDateAndReplace()

Dim FoundOne As Boolean

Selection.HomeKey Unit:=wdStory, Extend:=wdMove     FoundOne = True ' loop at least once

Do While FoundOne ' loop until no date is found         With Selection.Find             .ClearFormatting             .Replacement.ClearFormatting             .Text = "([0-9]{1,2})[/]([0-9]{1,2})[/]([0-9]{4})"

.Format = True             .Forward = True             .MatchWildcards = True         End With

Selection.Find.Execute Replace:=wdReplaceNone

' check the find to be sure it's a date         If IsDate(Selection.Text) Then             Selection.Text = Format(Selection.Text, "mmmm d, yyyy")

Selection.Collapse wdCollapseEnd         Else ' not a date - end loop             FoundOne = False         End If     Loop End Sub

_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 các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

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

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (3400) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Word (Word 2007 và sau này) tại đây: