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