微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有Getsignature功能的自动回复

如何解决具有Getsignature功能的自动回复

我不是VBA的粉丝,但我正在尝试构建一个简单的VBA代码以设置自动回复

我100%肯定,我的代码中有一个错字,但我找不到它:

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

如果我运行“测试”代码,则什么也没发生。

解决方法

  1. 请将Spath = "my_path"移动到Strsignature = GetSignature(Spath)行上方。

否则,将使用空字符串(如参数)来调用该函数。 GetSignature函数必须首先检查字符串是否存在。

AutoReply代码也可以对其进行检查:

If Strsignature = "" Then Stop 'or send a message
  1. htmlBody修改为HTML字符串:
.htmlBody = "<H3><B>My_text</B></H3>" & "<br>" & Strsignature

您不得在代码开头使用On error Resume Next。除了没有让您知道问题出在哪里之外,为什么有必要这样做?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。