Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将电子邮件保存到主题为文件名的Windows文件夹_Vba_Outlook - Fatal编程技术网

Vba 将电子邮件保存到主题为文件名的Windows文件夹

Vba 将电子邮件保存到主题为文件名的Windows文件夹,vba,outlook,Vba,Outlook,我希望特定的电子邮件(票)被保存到一个文件夹 我的搜索将我发送到此帖子() 当我试图使输出成为主题行时,我得到 由于文件权限错误,Outlook无法完成保存 与SenderName或时间/日期一起使用 Public Sub SaveEmail(msg As Outlook.MailItem) ' assume an email is selected Set msg = ActiveExplorer.Selection.Item(1) ' the 2nd and 3rd

我希望特定的电子邮件(票)被保存到一个文件夹

我的搜索将我发送到此帖子()

当我试图使输出成为主题行时,我得到

由于文件权限错误,Outlook无法完成保存

与SenderName或时间/日期一起使用

Public Sub SaveEmail(msg As Outlook.MailItem)
    ' assume an email is selected
    Set msg = ActiveExplorer.Selection.Item(1)

    ' the 2nd and 3rd options work but the 1st does not
    ' msg.SaveAs "C:\" & msg.Subject & ".msg", olTXT
    ' msg.SaveAs "C:\" & Format(Now, "YYYYMMDDHHMMSS") & ".txt", olTXT
    msg.SaveAs "C:\" & msg.SenderName & ".txt", olTXT
 End Sub

文件名中不能使用所有字符。即这些

Asterisk (*)
Backslash (\)
Colon (:)
Angle brackets (< >)
Question mark (?)
Slash (/)
Plus sign (+)
Pipe (|)
Quotation mark (")
星号(*)
反斜杠(\)
冒号(:)
尖括号(<>)
问号(?)
斜杠(/)
加号(+)
管道(|)
引号(“)

网上有很多地方可以找到一个可以删除或替换它们的预写函数。这里有一个:

你能举个主题行的例子吗?我最想知道的是主题行是否包含非法字符和/或违反Windows文件名中的字符限制。你不是在向这个
Sub SaveEmail()传递邮件项目吗
?为什么要将其更改为所选内容?如果所选内容不是邮件怎么办?@JoeyGrant“R1分钟用户服务票证00“加上两个零后的4位数字。帕特里克,老实说,我不完全确定。我一直在玩它,直到它符合我的规则。我认为,因为它只在电子邮件上运行,所以它会工作吗?谢谢你的回复@布拉克斯起初没有注意到你的信息,但这正是我所需要的!谢谢现在我想知道如何标记你的答案为正确,因为“检查”并没有出现在我认为应该出现的地方。