【问题标题】:Remove empty lines before signature in VBA generated email在 VBA 生成的电子邮件中删除签名前的空行
【发布时间】:2021-12-08 12:48:02
【问题描述】:

我有一个创建电子邮件的宏。打开新电子邮件时,它会在默认签名前添加三行间距。
我尝试了各种替换和修剪解决方案。

相关部分代码:

Set objEmail = app_Outlook.CreateItem(olMailItem)
            
Dim signature As String
                          
strSalutation = "<html><head></head><body>" & sGreeting & " " & Sheets("Tabelle2").Cells(i, 5) & "," & "</body></html>"
            
objEmail.SentOnBehalfOfName = "address@mail.com"
            
objEmail.Display
              
objEmail.To = sEmail_Address

objEmail.Subject = sTitle
            
sSignature = Replace(objEmail.HTMLBody, Chr(13), "")
                       
objEmail.HTMLBody = strSalutation & "<p>" & sTemplate & objEmail.HTMLBody

我需要它才能在任何人的笔记本电脑上工作,所以不仅仅是我的签名。

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    在上面的示例代码中:

     trSalutation = "<html><head></head><body>" & sGreeting & " " & Sheets("Tabelle2").Cells(i, 5) & "," & "</body></html>"
     ...
     objEmail.HTMLBody = strSalutation & "<p>" & sTemplate & objEmail.HTMLBody
    

    在关闭&lt;/html&gt; 标记后添加一个新的HTML 元素。

    相反,您需要将注视在 &lt;body&gt;&lt;/body&gt; 元素内的称呼粘贴。结果,您将获得一个格式良好的 HTML 字符串。

    【讨论】:

      【解决方案2】:

      您可以使用样式来移除边距,如下所示:

      "<html><head><style>p{margin-top:0;margin-bottom:0;}</style></head><body>"
      

      【讨论】:

        【解决方案3】:

        你可以试试这个:

        sSignature = Replace(objEmail.HTMLBody, "<p class=MsoNormal><o:p>&nbsp;</o:p></p>", "")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-26
          • 2019-09-18
          • 2021-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-25
          • 1970-01-01
          相关资源
          最近更新 更多