Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在单独的功能中编写电子邮件正文?_Vba_Excel_Email_Outlook - Fatal编程技术网

Vba 如何在单独的功能中编写电子邮件正文?

Vba 如何在单独的功能中编写电子邮件正文?,vba,excel,email,outlook,Vba,Excel,Email,Outlook,我有以下宏非常有效(在线找到代码): 有没有办法通过执行单独的宏来编写主体?最终用户有一封相当长的电子邮件,这大部分是标准的,所以我希望电子邮件的主体是一个单独的宏,如果可能的话 这样,我可以编写任意数量的自定义消息,每次宏写入电子邮件正文时,我都会调用一个不同的宏,该宏包含我想要的内容。Sub Sample\u Auto\u Generated\u email() Sub Sample_Auto_Generated_Email() Dim objOutl Set objOu

我有以下宏非常有效(在线找到代码):

有没有办法通过执行单独的宏来编写主体?最终用户有一封相当长的电子邮件,这大部分是标准的,所以我希望电子邮件的主体是一个单独的宏,如果可能的话

这样,我可以编写任意数量的自定义消息,每次宏写入电子邮件正文时,我都会调用一个不同的宏,该宏包含我想要的内容。

Sub Sample\u Auto\u Generated\u email()
Sub Sample_Auto_Generated_Email()

    Dim objOutl

    Set objOutl = CreateObject("Outlook.Application")
    Set objMailItem = objOutl.CreateItem(olMailItem)

    objMailItem.Display
    strEmailAddr = "User@Use.com"
    objMailItem.Recipients.Add strEmailAddr
    objMailItem.Subject = "Sample"    
    objMailItem.Body = GetMessageBody()  ' <--- This line is different
    objMailItem.Send
    Set objMailItem = Nothing
    Set objOutl = Nothing

End Sub

' This Function has been added.
Private Function GetMessageBody() As String
    GetMessageBody = "Test."
End Function
模糊对象 Set objOutl=CreateObject(“Outlook.Application”) 设置objMailItem=objOutl.CreateItem(olMailItem) objMailItem.Display strEmailAddr=”User@Use.com" objMailItem.Recipients.Add strEmailAddr objMailItem.Subject=“样本”
objMailItem.Body=GetMessageBody()“
objMailItem.Body=SomeOtherFunction
?我尝试了objMailItem.Body=Call Macro1,我用于Macro1的代码是objMailItem.Body=“Test”,但没有成功。请使用返回
字符串的函数,而不是
子项的函数。很高兴能提供帮助!如果您觉得它对您有用,请随时使用。:-)
Sub Sample_Auto_Generated_Email()

    Dim objOutl

    Set objOutl = CreateObject("Outlook.Application")
    Set objMailItem = objOutl.CreateItem(olMailItem)

    objMailItem.Display
    strEmailAddr = "User@Use.com"
    objMailItem.Recipients.Add strEmailAddr
    objMailItem.Subject = "Sample"    
    objMailItem.Body = GetMessageBody()  ' <--- This line is different
    objMailItem.Send
    Set objMailItem = Nothing
    Set objOutl = Nothing

End Sub

' This Function has been added.
Private Function GetMessageBody() As String
    GetMessageBody = "Test."
End Function