Đối với một số tài liệu, sẽ rất hữu ích khi có một danh sách ngày tháng mà bạn có thể sử dụng làm cơ sở cho công việc của mình. Ví dụ: bạn có thể phải tạo một báo cáo liệt kê tất cả các ngày từ bây giờ đến cuối năm, cùng với tên của một người hoặc tên dự án ở bên phải ngày đó.

Điểm bắt đầu, tất nhiên, là lấy danh sách các ngày.

Có một số cách bạn có thể tiếp cận để tạo danh sách. Một phương pháp đơn giản là sử dụng Excel kết hợp với Word. Tính năng Tự động điền của Excel giúp tạo danh sách ngày tháng dễ dàng một cách đáng kinh ngạc. Sau khi có danh sách trong Excel, bạn có thể sao chép và dán danh sách đó vào tài liệu Word hoặc bạn có thể sử dụng phối thư để hợp nhất ngày tháng vào tài liệu (nếu cách tiếp cận đó phù hợp với nhu cầu của bạn).

Nếu bạn không muốn sử dụng Excel vì lý do nào đó, giải pháp tốt nhất là sử dụng macro. Macro sau đây rất nhanh chóng tạo ra một danh sách tất cả các ngày trong năm 2015:

Sub PrintYearDays()

Dim DateToday As Date     Dim T As Integer

'Because the date is going to be changed, save it     DateToday = Date     Date = #12/31/2014#

For T = 1 To 365         Selection.TypeText Text:=Format(Date + T, _           "mmmm dd yyyy")

Selection.TypeParagraph     Next T

'Restore today's date     Date = DateToday End Sub

Lưu ý rằng macro hoạt động bằng cách đặt lại ngày trên hệ thống của bạn.

Ngày hiện tại của ngày hôm nay được lưu trữ trong biến DateToday và sau đó ngày được đặt lại thành ngày bắt đầu cho phạm vi của bạn. Nếu bạn muốn macro hoạt động trong một số phạm vi ngày khác, chỉ cần thay đổi ngày bắt đầu, cùng với giá trị kết thúc của vòng lặp For …​ Next.

Nếu bạn cần tạo danh sách ngày và bạn chưa bao giờ biết ngày bắt đầu và ngày kết thúc trong phạm vi sẽ như thế nào, thì một cách tiếp cận macro khác sẽ có ý nghĩa hơn. Macro sau đây hỏi bạn cả ngày bắt đầu và ngày kết thúc:

Sub ListDates()

Dim ListDate as Date     Dim StartDate As Date     Dim EndDate As Date     Dim Repeats As Integer

'Gets user input     StartDate = InputBox("Please enter the starting date.", _       "Start Date", "Start Date")

EndDate = InputBox("Please enter the ending date.", _       "End Date", "End Date")



'Enters the start date in the document     Selection.TypeText Text:=Format(StartDate, _       "dddd, MMMM dd, yyyy")

Selection.TypeText (vbCr & vbLf)



'Determines the number of dates to print     Repeats = DateDiff("d", StartDate, EndDate)



'Loops to print the list of dates     For i = 1 To Repeats         ListDate = DateAdd("d", i, StartDate)

Selection.TypeText Text:=Format(ListDate, _           "dddd, MMMM dd, yyyy")

Selection.TypeParagraph     Next i End Sub

Các biến StartDate và EndDate, do đầu vào của bạn đặt, xác định số lần lặp lại vòng lặp For …​ Next.

_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 (3864) á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: