保质期为 1 年

保质期为 1 年

如何在 Word 中创建一个宏,将“最佳使用日期”设置为自今天起一年后重复的日期,就像调用时在 Word 中显示今天的日期一样?

答案1

您的意思是仅生成“12/23/2018”吗?

  • 将其输入Date \@ “MM/dd/”=date \@ “yyyy”+1(或复制并粘贴)到 Word 文档中。
    这似乎不区分大小写(日期格式除外)。
    “直引号”(直引号)和“花括号”(花括号) 似乎可以互换。
  • 选择Date \@ “MM/dd/”并按Ctrl+ F9,这会将其更改为字段。它的外观将更改为, 并且可能具有灰色背景。每次按+时都会发生相同的转变。不要输入任何花括号!{ Date \@ “MM/dd/” }CtrlF9
  • 选择date \@ “yyyy”并按Ctrl+ F9
  • 选择 并按+ 。该行现在应如下所示:。={ date \@ “yyyy” }+1CtrlF9
    { Date \@ “MM/dd/” }{ ={ date \@ “yyyy” }+1 }
  • 然后选择整行并按F9不是 Ctrl+ F9)。
  • 如果什么都没发生,请按Shift+ F9  (再次,不是 Ctrl+ F9),这样就可以了。

这只需获取今天的日期,将其格式化为“MM/dd/”(即“12/23/”),然后在其后加上当前年份加一。(如果您想要其他格式,只需更改它即可。)例如,如果您想要“yyyy/MM/dd”,请将起始文本更改为=date \@ “yyyy”+1Date \@ “/MM/dd” 并按照相同的说明进行操作(不同之处在于MM/dd/已替换为/MM/dd,因为您想要的是/年份和月份之间的,而不是日期之后的)。

我不太清楚你说的“将其保存为宏并命名”是什么意思。也许这就是你想要的:

  • 输入Set best_date quote =date \@ “yyyy”+1Date \@ “/MM/dd”。您可能希望在文档开头附近的某个位置执行此操作。
  • 按照上述 所有Ctrl+步骤进行操作。F9
  • 选择 (即从该行到行尾的所有内容)并按+ 。quote { ={ date \@ “yyyy” }+1 }{ Date \@ “/MM/dd” }quoteCtrlF9
  • 选择 (即整行)并按+ 。Set best_date { quote { ={ date \@ “yyyy” }+1 }{ Date \@ “/MM/dd” } }CtrlF9
  • F9重复上面列表中的最后两个步骤(带有和Shift+ 的步骤F9)。现在,您刚刚完成的所有操作都将消失,但您将定义一个名为 的“书签”,best_date 其中包含下一年的日期。从实际目的来看,这是一个变量;它可能与您所说的“宏”的意思非常接近。
  • 现在,在文档中您想要使用未来日期的任何位置,键入best_date并将其转换为如上所述的字段(Ctrl+F9和 F9 + ShiftF9

best_date只是一个任意标识符。您可以使用任何有效的标识符,例如bob_string

警告:如果您在 2020 年 2 月 29 日使用它,它将显示“2021/2/29”,这不是一个有效的日期。


好的,在您报告的评论中,当您保存并重新打开文档时,会出现以下字段,例如

{设置最佳日期{引用{={日期 \@“yyyy”}+1}{日期 \@“/MM/dd”} } }

并且日期不显示。这是由全局 Word 设置控制的。至少有几种方法可以修复它:

  1. 道路微软告诉你去做吧:
    • 进入“Word 选项”。在较旧的 Word 版本(2010 之前)中,可通过“Orb”访问。在 Word 2010 和 2013(以及更高版本?)中,它是“文件”→“选项”。
    • 转到“高级”(通过单击选项窗口左栏中的“高级”)。
    • 向下滚动到“显示文档内容”部分。
    • 点击“显示字段代码而不是其值”清除(取消选中)复选框。
  2. 一种更短的方法:
    • Alt+ F9。一次。在任何文档中。

当然,你必须在每台机器上执行一次此操作(上述操作之一)。可能每台机器一次每个用户或者,如果用户看到显示的字段代码,就告诉他们这样做(我推荐Alt+一)。F9

我不确定我是否理解了您的另一个问题。您是说,如果您在 2017 年 12 月 28 日按照上述说明操作,您将获得所需的未来日期“2018/12/28”,但如果您保存它,然后在 12 月 29 日重新打开它,它仍会显示“2018/12/28”,但您希望它显示“2018/12/二十九”?这有点棘手。显然,Microsoft Word 被设计为在您打开文档时不更新字段(可能是因为理论上可能需要很长时间)。以下是两种解决方案:

  1. 正如所描述的这里(和这里),

    • 选择整个文档(最简单的方法是按Ctrl+ A),然后
    • F9

    很遗憾,每一个用户必须学会这样做每一个他们打开文档的时间(或至少每天)。

  2. 正如所描述的这里,写一个AutoOpen宏,说

    Sub AutoOpen()
        With Options
            .UpdateFieldsAtPrint = True
            .UpdateLinksAtPrint = True
        End With
        ActiveDocument.Fields.Update
    End Sub
    

    如何在 MS Office 中添加 VBA? 了解有关此机制的一般信息。

我推荐选项 1;宏可能会很麻烦。但是,如果您的用户不愿意学习新程序,选项 2 可能是您的更好选择。

相关内容