【问题标题】:Add a DeferredDeliveryTime of two days to arrive at 9am添加两天的 DeferredDeliveryTime 以在上午 9 点到达
【发布时间】:2022-11-30 18:06:57
【问题描述】:

我想把时间改到早上 9 点。它没有工作或已删除前面的 DateAdd("d", 2, now) 分配它 2 天的时间。

replyEmail.DeferredDeliveryTime = DateAdd("d", 2, Now)

我尝试了不同的 DateTime 函数,定义了某些值,例如日期 + 时间("09:00:00")

【问题讨论】:

  • 如果您在此网站上搜索 [vba] DeferredDeliveryTime,您将获得 31 个结果。看看这些是否能回答您的问题。
  • @TomBrunberg 我已经浏览了其中的每一个,但无济于事。任何不同的尝试都会确认日期正确“11/09/2022 00:00”或时间正确“30/12/1899 09:00”但不能一起确认“11/09/2022 09:00”

标签: vba outlook


【解决方案1】:

玩了两天之后,看来我偶然发现了我的答案。

    replyEmail.DeferredDeliveryTime = DateAdd("d", 2, Date) + DateAdd("n", 0, #9:00:00 AM#)

我的问题是找到正确的对象,然后如何将两者连接起来,这样函数就不会覆盖自身,导致只有日期或时间正确,而不是两者都正确。

我确信有一种方法可以使它看起来更干净,如果我发现了它,我会发布,但这暂时可以完成工作。

【讨论】:

  • 伟大的!你试过了吗? (通过将您的电脑时钟向前设置)
  • @TomBrunberg 我确实有,但没有将时间调快,因为它被 IT 管理员团队锁定了。向我的家庭电子邮件地址发送了一封测试电子邮件,其中的值已更改以反映今天的日期,当我吃午饭时,电子邮件通过了。巨大的成功!
  • 极好的!感谢您的反馈 (+1)
  • 您不需要使用代码栅栏进行格式化4 个空格缩进。为了便于阅读,删除代码行前面的 4 个空格。
【解决方案2】:
Option Explicit

Sub deferredDelivery_2D9H()

    Dim mItem As MailItem
    Dim d2_9AM As Date
    
    Debug.Print "Date + 2 time format......: " & Format(Date + 2, "ddddd hh:nn")
    
    d2_9AM = DateAdd("h", 9, Date + 2)
    Debug.Print "d2_9AM....................: " & d2_9AM
    
    Set mItem = CreateItem(olMailItem)
    mItem.DeferredDeliveryTime = d2_9AM
    Debug.Print "mItem.DeferredDeliveryTime: " & mItem.DeferredDeliveryTime
    
    mItem.Display
    
    ' "Do not deliver before" entry in Options Tracking Properties dialog
    'ActiveInspector.CommandBars.ExecuteMso ("DelayDeliveryOutlook")
    
    ' Options Tracking Properties dialog
    ActiveInspector.CommandBars.ExecuteMso ("MessageOptions")
    
End Sub

【讨论】:

    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2023-02-22
    • 2020-09-19
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多