我无法使用脚本自动将电子邮件正文导出到文本文件中。 我已经管理了一个脚本,将文本保存到宏上的文件中,但这不适用于我需要的规则。
我目前的代码如下:
Sub SaveAsTXT()
Dim myItem As Outlook.Inspector
Dim objItem As Object
Dim myFolder As Folder
Set myItem = Application.ActiveInspector
If Not TypeName(myItem) = "Nothing" Then
Set myNamespace = Application.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Set objItem = myItem.CurrentItem
strname = objItem.Subject
strdate = Format(objItem.ReceivedTime, " yyyy mm dd")
objItem.SaveAs "c:\users\philip\documents\" & strname & strdate & ".txt", olTXT
End If
End Sub
道歉,如果它看起来有点乱,我已经无数次编辑它试图让它发挥作用。
当我在打开的电子邮件中并将其作为宏运行时,这是正确运行的代码,但在作为规则运行时它将无法正常运行
我已经尝试修改Sub SaveAsTXT(Item as Outlook.Mailitem)
,但这似乎也不起作用
所以基本上问题是如何确保代码在作为规则运行时选择电子邮件(在没有引号的情况下始终标题为“Rotas”)?
信息:使用Office 2010,我不是一个非常好的编码器。
答案 0 :(得分:6)
实际上我设法自己解决了。
我不认为item as Outlook.Mailitem
元素实际上是规则选择的内容。所以我应用item
作为对象,而不是objItem
找到下面的成功(和清理)代码:
Sub SaveAsTXT(myMail As Outlook.MailItem)
Dim objItem As Object
Dim myFolder As Folder
If Not TypeName(myitem) = "Nothing" Then
If myMail.Subject = "Rotas" Then
strname = myMail.Subject
strdate = Format(myMail.ReceivedTime, " yyyy mm dd")
myMail.SaveAs "c:\users\philip\documents\" & strname & ".txt", olTXT
End If
End If
End Sub