如何解决具有Getsignature功能的自动回复
我不是VBA的粉丝,但我正在尝试构建一个简单的VBA代码以设置自动回复。
Option Explicit
Sub AutoReply(olItem As Outlook.MailItem)
Dim olOutMail As Outlook.MailItem
Dim Strsignature As String
Dim Spath As String
Strsignature = GetSignature(Spath)
Spath = "my_path" '->validpath
With olItem
Set olOutMail = olItem.Reply
With olOutMail
.Subject = "my_subject"
.HTMLBody = "my_text" & Strsignature
.display 'send
End With
Set olOutMail = nothing
End With
End Sub
:
Function GetSignature(fPath As String) As String
Dim fso As Object
Dim TSet As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set TSet = fso.GetFile(fPath).OpenAsTextStream(1,-2)
GetSignature = TSet.ReadAll
TSet.Close
End Function
测试:
Sub test()
Dim olMsg As MailItem
On Error Resume Next
Set olMsg = ActiveExplorer.Selection.Item(1)
AutoReply olMsg
End Sub
如果我运行“测试”代码,则什么也没发生。
解决方法
- 请将
Spath = "my_path"
移动到Strsignature = GetSignature(Spath)
行上方。
否则,将使用空字符串(如参数)来调用该函数。 GetSignature
函数必须首先检查字符串是否存在。
AutoReply
代码也可以对其进行检查:
If Strsignature = "" Then Stop 'or send a message
- 将
htmlBody
修改为HTML字符串:
.htmlBody = "<H3><B>My_text</B></H3>" & "<br>" & Strsignature
您不得在代码开头使用On error Resume Next
。除了没有让您知道问题出在哪里之外,为什么有必要这样做?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。