我是相当新的VBA编程,我需要一些帮助,我需要在我的工作。我创建了一个工作表,以减少团队工作人员在白天工作中花费的时间,并给予更多信息,我们使用此工作表将团队管理的关键问题的所有信息填写到作战室。当一个关键的问题正在发生时,团队负责为公司发送公告,由于旧的流程在这些公告中缺乏标准化,我决定创建这个带有电子邮件自定义布局的表单。为了防止工作人员编辑此布局,我保护了工作表并创建了带有宏的按钮来生成这些公告,但正如一个新手所看到的那样,它无法正常工作。
下面是此工作表中生成公告的屏幕截图。细胞从B6开始,在L27结束。工作表标识为“Planilha 5”,我需要的是:当工作人员单击工作表中的SEND按钮时,将调用Microsoft Outlook 365中的新消息,并将定义的信息填充到VBA脚本中,并且必须将工作表定义的范围粘贴到邮件消息的正文中。
Announcement screenshot
这是我试图修改以使用的VBA脚本:
Sub EnviarAbertura()
Dim Outlook As Object, Novo_Email As Object, Email_Body As String, b1 As Variant
b1 = Planilha5.Range("B6:L27")
Set Outlook = CreateObject("Outlook.application")
Email_Body = b1
Set Novo_Email = Outlook.CreateItem(0)
Corpo = Planilha5.Range("B6:L27").Copy
With Novo_Email
.SentOnBehalfOfName = "centraldecomandotd@natura.net"
.Subject = Planilha5.Range("G4")
.Body = Email_Body
.Display
End With
End Sub
当我注解行'b1 = Planilha5.Range(“B6:L27”)';'Email_Body = b1';'.Body = Email_Body',脚本在没有填充正文的情况下正常工作。
VBA Script working properly
我已经手动粘贴到下面的屏幕截图工作表范围,以显示你们什么我的观察做VBA脚本。
Expected results
请问,有人可以帮助我与此VBA脚本?
1条答案
按热度按时间ncgqoxb01#
基于Excel数据设置消息正文的方法主要有两种:
1.基于工作表内容构建HTML标记。这基本上就是罗恩在Mail Range/Selection in the body of the mail页面上描述的内容,您可以在其中找到以下示例代码:
注意,在获取HTML标记后,您需要使用
HTMLBody
属性,而不是纯文本Body
。1.您可以使用Range.Copy方法在Excel中复制所需的范围,然后使用Word编辑器直接粘贴到邮件正文,请参阅
Inspector
类的WordEditor
属性。该属性返回所显示邮件的Microsoft Word文档对象模型。请参阅Chapter 17: Working with Item Bodies了解更多信息。