我有一个以Excel工作表开头的宏,它将通过Outlook电子邮件发送给同事。
我一直试图使用Ron de Bruin链接将保存的签名添加到Outlook电子邮件中,但它说";找不到文件";。https://www.rondebruin.nl/win/s1/outlook/signature.htm
-签名未设置为默认值,因为我保存了多个签名。
-当我执行Debug.Print
时,路径匹配它应该是什么
C: \Users\cday\AppData\Roaming\Microsoft\Signatures\Inventory Report.htm
Sub Setup_Email()
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Set OutApp = CreateObject("Outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)
Dim StrSignature As String
Dim SPath As String
SPath = Environ("appdata") & "MicrosoftSignaturesInventory Report.htm"
Debug.Print SPath
StrSignature = Getsignature(SPath)
With OutMail
.Display
.to = "People"
.CC = "More People"
.Subject = ThisWorkbook.Name
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = StrSignature
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Function Getsignature(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2) **"File Not Found"**
Getsignature = ts.readall
ts.Close
End Function
您真的在Windows资源管理器中看到了这个名称的签名文件吗?请记住;CCD_ 2";文件夹名称已本地化。实际文件夹名称存储在的Signatures
值中
HKEY_CURRENT_USERSoftwareMicrosoftOffice<version>CommonGeneral
我重新查找了我的宏,因为它缺少调用-GetBroiler
函数:子设置电子邮件((
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim SigString As String
Dim Signature As String
Set OutApp = CreateObject("Outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)
SigString = Environ("appdata") & "MicrosoftSignaturesInventory Report.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
On Error Resume Next
With OutMail
.Display
.to = "People"
.CC = "More People"
.Subject = ThisWorkbook.Name
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = Signature
End With
Set OutMail = Nothing
Set OutApp = Nothing
结束子
函数GetBoiler(ByVal sFile As String(As String将fso标注为对象标注为对象设置fso=CreateObject("Scripting.FileSystemObject"(设置ts=fso。GetFile(sFile(.OpenAsTextStream(1,-2(GetBoiler=ts.readallts.关闭终端功能