Excel 我的outlook签名outlook与VBA存在问题

Excel 我的outlook签名outlook与VBA存在问题,excel,vba,outlook,signature,Excel,Vba,Outlook,Signature,我刚开始学习VBA。 我创建了一个vba代码,通过Outlook发送电子邮件。但是,代码在打开邮件时起作用,徽标会在一秒钟内出现并消失,而是出现一个红十字。我不明白问题从何而来。这是我的密码: Private Sub EnvoyerMail() Dim Mail As Variant Dim Ligne As Integer Dim Nom_Fichier As String Dim DernLigne As Long Dim SigString As String Dim Signature

我刚开始学习VBA。 我创建了一个vba代码,通过Outlook发送电子邮件。但是,代码在打开邮件时起作用,徽标会在一秒钟内出现并消失,而是出现一个红十字。我不明白问题从何而来。这是我的密码:

Private Sub EnvoyerMail()

Dim Mail As Variant
Dim Ligne As Integer
Dim Nom_Fichier As String
Dim DernLigne As Long
Dim SigString As String
Dim Signature As String
Dim strBody As String


Set Mail = CreateObject("Outlook.Application") 
DernLigne = Range("A1048576").End(xlUp).Row 

For Ligne = 2 To 3 'DernLigne ' A changer selon la taille du fichier

    'Change only Mysig.htm to the name of your signature
    SigString = Environ("appdata") & "\Microsoft\Signatures\" 
    f = Dir(SigString & "*.htm")
    If f <> "" Then
        Signature = GetBoiler(SigString & f)
        Signature = Replace(Signature, "src=""", "src=""" & SigString)

    Else
        Signature = ""
    End If

    On Error Resume Next

    With Mail.CreateItem(olMailItem)
        '.HTMLBody = Signature
        strBody = _
        "<Body>Bonjour,<br /><br /></Body>" & _
        "<Body>Veuillez trouver ci-joint le rapport énergétique du mois dernier pour votre site.<br /><br /> Nous vous enverrons de manière régulière des rapports.<br />Notre objectif est de maintenir en continu un équilibre entre économies d’énergie et confort.<br /><br /></Body>" & _
        "<Body>Remarque: Ce rapport est créé de façon automatique, si vous remarquez une erreur, n’hésitez pas à nous faire un retour.<br /><br /></Body>"

        Nom_Fichier = Range("A" & Ligne) 'Chercher la pièce jointe
        .Display
        .Save
        .Subject = Range("B" & Ligne) 
        .To = Range("C" & Ligne) 
        .CC = Range("D" & Ligne) 
        '.BCC = Range("" & Ligne)
        .HTMLBody = strBody & Signature
        .Attachments.Add Nom_Fichier    
        .Display
        .Send

    End With

Next Ligne

End Sub

Function GetBoiler(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)
    GetBoiler = ts.readall
    ts.Close
End Function

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
私人副特使
Dim Mail作为变体
作为整数的Dim Ligne
作为字符串的Dim Nom_Fichier
黯淡的灯光像长的一样
字符串作为字符串
作为字符串的数字签名
像弦一样暗的链子
设置Mail=CreateObject(“Outlook.Application”)
DernLigne=范围(“A1048576”)。结束(xlUp)。行
对于2到3个“DernLigne”换电器,请选择fichier taille du fichier
'仅将Mysig.htm更改为签名的名称
SigString=Environ(“appdata”)和“\Microsoft\Signatures\”
f=Dir(SigString&“*.htm”)
如果f“那么
签名=GetBoiler(SigString&f)
签名=替换(签名,“src=”“”、“src=”“”&SigString)
其他的
Signature=“”
如果结束
出错时继续下一步
使用Mail.CreateItem(olMailItem)
'.HTMLBody=签名
strBody=_
“你好,

”_ “Veuillez trouver ci joint le Reporténergétique du mois dernier pour votre site.

_ “Remarque:与自动化系统的关系密切,您的关系是正确的,我们的关系是公平的。” Nomèu Fichier=范围(“A”和“Ligne”)Chercher la pièce joint .展示 拯救 .Subject=范围(“B”和对齐) .To=范围(“C”和“对齐”) .CC=范围(“D”和直线) '.BCC=范围(“&Ligne”) .HTMLBody=strBody和签名 .Attachments.Add Nom_Fichier .展示 .发送 以 下一页 端接头 函数GetBoiler(ByVal sFile作为字符串)作为字符串 作为对象的Dim fso 将T作为对象 设置fso=CreateObject(“Scripting.FileSystemObject”) 设置ts=fso.GetFile(sFile).OpenAsTextStream(1,-2) GetBoiler=ts.readall 关闭 端函数 函数GetSignature(fPath作为字符串)作为字符串 作为对象的Dim fso 作为对象的Dim TSet 设置fso=CreateObject(“Scripting.FileSystemObject”) 设置TSet=fso.GetFile(fPath).OpenAsTextStream(1,-2) GetSignature=TSet.readall 关闭 端函数
这可能会偶然发现要更改的代码

选项显式
私人副特使签名然后编辑签名演示()
'此演示不需要Excel代码和循环
将邮件作为对象
字符串作为字符串
作为字符串的数字签名
像弦一样暗的链子
作为字符串的Dim F
设置Mail=CreateObject(“Outlook.Application”)
SigString=Environ(“appdata”)和“\Microsoft\Signatures\”
'仅将Mysig.htm更改为签名的名称
'F=dir(SigString&“Mysig.htm”)
'使用*通配符时,如果有多个签名,则太模糊
F=dir(SigString&“*.htm”)
如果F“那么
“未知成分的签名”
签名=GetBoiler(SigString&F)
"未知作品的编辑签名"
签名=替换(签名,“src=”“”、“src=”“”&SigString)
其他的
Signature=“”
如果结束
'默认签名
使用Mail.CreateItem(olMailItem)
.展示
MsgBox“邮件#1-默认签名”&vbCr&vbCr&“默认签名显示并成为.HTMLBody的一部分”
strBody=_
“你好,

”_ “Veuillez trouver ci joint le Report?nerg?tique du mois dernier pour votre site.

_ “回复:在自动化方面,您的回复是正确的,因为您的回复是正确的。” '忽略已编辑的F=dir(SigString。。。 '用strBody和current.HTMLBody覆盖当前默认签名的正文 .HTMLBody=strBody和.HTMLBody MsgBox“邮件#1-默认签名”&vbCr&vbCr&_ 整个正文,包括默认签名,被strBody和current.HTMLBody覆盖 以 '已编辑的F=dir(SigString。。。 使用Mail.CreateItem(olMailItem) .展示 MsgBox“Mail#2-编辑的F=dir(SigString…&vbCr&vbCr&”默认签名显示并成为.HTMLBody的一部分 strBody=_ “你好,

”_ “Veuillez trouver ci joint le Report?nerg?tique du mois dernier pour votre site.

_ “回复:在自动化方面,您的回复是正确的,因为您的回复是正确的。” '用strBody和编辑的F=dir(SigString。。。 .HTMLBody=strBody和签名 MsgBox“邮件#2-编辑的F=dir(SigString…&vbCr&vbCr&_ “整个正文,包括默认签名,由strBody覆盖,并由”&vbCr&vbCr&_ “F=dir(SigString…&vbCr&vbCr&_ “如果有多个签名,则dir(SigString…)不一定与默认签名相同。” 以 端接头 函数GetBoiler(ByVal sFile作为字符串)作为字符串 作为对象的Dim FSO 将T作为对象 设置FSO=CreateObject(“Scripting.FileSystemObject”) 设置ts=FSO.GetFile(sFile).OpenAsTextStream(1,-2) GetBoiler=ts.ReadAll 关闭 端函数 函数GetSignature(fPath作为字符串)作为字符串