在VBA中,Outlook是否可以根据一天中的时间输出不同的短语,而不使用Excel文档?

在VBA中,Outlook是否可以根据一天中的时间输出不同的短语,而不使用Excel文档?,excel,vba,datetime,time,outlook,Excel,Vba,Datetime,Time,Outlook,我每天做3次流程,并在我的电子邮件上注明我做了哪些流程,我在电子邮件上写上上午、中午或下午。我很好奇,在电子邮件VBA outlook中是否有一种方法可以在模板中实现这一点 我需要能够根据一天中的时间在主体和主体中输入一组动态字符(上午、中午或下午) 基本上,我希望它显示为上午10点之前的上午,上午10点到下午2点之间的中午,以及下午2点之后的“下午” 这是可行的还是我最好使用一种完全不同的方法,而不是我目前处理这个问题的方式 到目前为止,我有一个上午、中午和下午的模板,但如果我能有一个动态模板

我每天做3次流程,并在我的电子邮件上注明我做了哪些流程,我在电子邮件上写上上午、中午或下午。我很好奇,在电子邮件VBA outlook中是否有一种方法可以在模板中实现这一点

我需要能够根据一天中的时间在主体和主体中输入一组动态字符(上午、中午或下午)

基本上,我希望它显示为上午10点之前的上午,上午10点到下午2点之间的中午,以及下午2点之后的“下午”

这是可行的还是我最好使用一种完全不同的方法,而不是我目前处理这个问题的方式

到目前为止,我有一个上午、中午和下午的模板,但如果我能有一个动态模板就太好了

我当前的AM代码如下:

Sub CreateNewMail()
    Dim obApp As Object
    Dim NewMail As MailItem

    Set obApp = Outlook.Application
    Set NewMail = obApp.CreateItem(olMailItem)

    With NewMail
         .Subject = "Docs " & Format(Date, "m.d.yy") & " AM"
         .To = "Mr. Nobody"
         .Body = "Attached are the docs for " & Format(Date, "m.d.yy") & " AM."
         .Display
    End With

    Set obApp = Nothing
    Set NewMail = Nothing
End Sub
使用它将返回一个变量(日期),该变量指示当前系统时间,并根据表达式的值运行多组语句之一


范例

选项显式
子CreateNewMail()
Dim信息作为字符串
选择Case True
案例现在时间值(“上午10:00:00”)和现在<时间值(“下午2:00:00”)
info=“中午”
调试。打印信息
Case Now>=时间值(“02:00:00 PM”)
info=“PM”
调试。打印信息
结束选择
端接头


要在代码中使用它,请参见下面的示例

选项显式
子CreateNewMail()
尺寸信息为字符串“-<已添加
选择Case True
Case Now=时间值(“02:00:00 PM”)
info=“PM””——<已添加
调试。打印信息
结束选择
Dim obApp作为对象
设置obApp=Outlook.Application
将新邮件设置为邮件项
Set NewMail=obApp.CreateItem(olMailItem)
与NewMail
.Subject=“Docs”和格式(日期,“m.d.yy”)和信息“-<已添加
.To=“无人先生”
.Body=“附件为”&_
格式(日期,“m.d.yy”)和信息-<已添加
.展示
以
设置obApp=Nothing
设置NewMail=Nothing
端接头

那么,我该如何准确地将其纳入VBA电子邮件模板主题和正文的代码中呢?我目前必须使用.HTMLBody,因为我希望模板中包含项目符号。我将在哪里以及在当前代码中输入什么?目前,哪里有一个“am”“这就是我希望有一个动态时间函数的地方,就像我上面看到的那样。
Option Explicit
Sub CreateNewMail()

    Dim info As String

    Select Case True

        Case Now <= TimeValue("10:00:00 AM")
            info = " AM" 
            Debug.Print info

        Case Now > TimeValue("10:00:00 AM") And Now < TimeValue("02:00:00 PM")
            info = " Noon" 
            Debug.Print info

        Case Now >= TimeValue("02:00:00 PM")
            info = " PM" 
            Debug.Print info

    End Select

End Sub
Option Explicit
Sub CreateNewMail()

    Dim info As String ' - < added

    Select Case True

        Case Now <= TimeValue("10:00:00 AM")
            info = " AM" ' - < added
            Debug.Print info

        Case Now > TimeValue("10:00:00 AM") And Now < TimeValue("02:00:00 PM")
            info = " Noon" ' - < added
            Debug.Print info

        Case Now >= TimeValue("02:00:00 PM")
            info = " PM" ' - < added
            Debug.Print info

    End Select

    Dim obApp As Object
    Set obApp = Outlook.Application

    Dim NewMail As MailItem
    Set NewMail = obApp.CreateItem(olMailItem)

    With NewMail
         .Subject = "Docs " & Format(Date, "m.d.yy") & info ' - < added
         .To = "Mr. Nobody"
         .Body = "Attached are the docs for " & _
                              Format(Date, "m.d.yy") & info ' - < added
         .Display
    End With

    Set obApp = Nothing
    Set NewMail = Nothing
End Sub