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 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 tính toán của mình, nhưng điều này dẫn đến một loạt các vấ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ó, 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. Điều này đã được đề cập trong WordTips trước đó; bạn cũng có thể tìm thông tin tại Word sau Trang MVP:

http://wordmvp.com/FAQs/MacrosVBA/DateOfPrevMonth.htm

WordTips là nguồn giúp 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 (8660) áp dụng cho Microsoft Wor d 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: