Aidan hỏi liệu có thể tính toán ngày bằng các trường không. Có vẻ như anh ấy muốn một ngày trong tương lai hai tuần và nghĩ rằng phải có một cách dễ dàng để tính toán một ngày trong tương lai bằng cách sử dụng các trường. Thật không may, không có cách nào dễ dàng. Mặc dù Word cho phép bạn thực hiện các phép tính đơn giản bằng cách sử dụng các giá trị số trong các trường, nhưng nó không cho phép bạn thực hiện các phép tính như vậy bằng cách sử dụng ngày thay vì số.

Tuy nhiên, bạn có thể tách các ngày thành các phần nội tại của chúng (tháng, ngày và năm), sau đó thực hiện các phép tính của mình, nhưng điều này dẫn đến các vấn đề hoàn toàn mới. Đột nhiên, bạn cần phải quan tâm đến những gì sẽ xảy ra khi bạn “điểm danh” vào cuối tháng hoặc năm. Toán học liên quan đến việc thực hiện một phép tính như vậy không phải là nhỏ. Ví dụ, hãy xem xét trường ghép sau:

{QUOTE "{SET Delay "14"}{SET "DaysInMonth" {IF {DATE \@ "MM"} <> 2 {=ROUND(30.575{DATE \@ "MM"},0)-ROUND(30.575{= {DATE \@ "MM"} –1},0)}{IF {=MOD({DATE \@ "yy"|, 4)} > 0 "28" "29"}}}{SET "NextMonth" {IF {DATE \@ "MM"} = 12 "1/97" "{= {DATE \@ "MM"} + 1}/97}}{IF {= {REF Delay} + {DATE \@ "dd"}} <= {DaysInMonth} {DATE \@ "MMMM {= {REF Delay} + {DATE \@ "dd"}}, yyyy"}{QUOTE "{NextMonth \@ "MMMM"} {= {REF Delay} + {DATE \@ "dd"} – {DaysInMonth}}, {IF {DATE \@ "MM"} <> 12 {DATE \@ "yyyy"}{DATE \@ "{= 1 + {DATE \@ "yyyy"} \# "xxxx"}" }}}}"}

Điều này sẽ trả về ngày trong thời gian hai tuần (được chỉ định trong dòng đầu tiên nơi đặt giá trị Độ trễ. Hạn chế, tất nhiên, là bản chất phức hợp của trường — có hơn 30 trường khác nhau chỉ trong trường kết hợp này! Ngay cả điều này việc triển khai, giống như vẻ ngoài của nó, sẽ không xử lý các năm nhuận một cách chính xác trong mọi trường hợp. (Nó sẽ không xử lý các năm nhuận một cách chính xác trong các năm thế kỷ chia hết cho 400.)

Có cách nào dễ dàng không để tính toán các ngày trong tương lai? Có, có — chỉ cần sử dụng macro. Chỉ với một vài hướng dẫn đơn giản, bạn có thể thực hiện các phép tính ngày khó khăn hơn. Cách thực hiện này đã được đề cập trong _WordTips; _ bạn cũng có thể tìm thấy thông tin tại trang Word MVP sau:

http://word.mvps.org/FAQs/MacrosVBA/DateOfPrevMonth.htm

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 (1579) áp dụng sang 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 trở lên) tại đây: