Vba 宏不';不显示打开的邮件

Vba 宏不';不显示打开的邮件,vba,outlook,Vba,Outlook,下面是我发送电子邮件的宏,但它不会打开新的电子邮件 此宏位于outlook规则中 你有什么想法吗 Sub sendemail() Dim ns As NameSpace 'Dim newMail As Outlook.MailItem Set ns = GetNamespace("MAPI") Dim newMail As MailItem Set newMail = Application.CreateItem() With newMail .To = "aaa@bbb"

下面是我发送电子邮件的宏,但它不会打开新的电子邮件

此宏位于outlook规则中

你有什么想法吗

  Sub sendemail()

  Dim ns As NameSpace
 'Dim newMail As Outlook.MailItem

Set ns = GetNamespace("MAPI")
 Dim newMail As MailItem
Set newMail = Application.CreateItem()

With newMail
  .To = "aaa@bbb" <--adress to whitch I want to send an email
  .Subject = "test"
  .Display
 End With
Set newMail = Nothing

  End Sub
Sub sendmail()
Dim ns作为名称空间
'将newMail设置为Outlook.MailItem
设置ns=GetNamespace(“MAPI”)
将新邮件设置为邮件项
Set newMail=Application.CreateItem()
与newMail

.To=”aaa@bbb“首先,您需要添加outlook引用:

好了:

然后:

Sub sendmail()
将outlook设置为新outlook。应用程序
将newMail设置为outlook.MailItem
设置newMail=outlook.CreateItem(olMailItem)
与newMail

.To=”email@address.com“您没有指定要创建的项。请看这里:

Private Sub SendEmail(ByVal workcenter As Integer, ByVal time As Date)
    Dim objApp As Object
    Dim objEmail As Object
    Set objApp = CreateObject("Outlook.Application")
    Set objEmail = CreateObject("Outlook.MailItem")
    With objEmail
        .To = "emailexampe@website.com"
        .Subject = "Multiple Shop Orders run for line " & workcenter & " at " & time
        .body = "TEST"
        .display
    End With
    Set objEmail = Nothing
    Set objApp = Nothing

End Sub
资料来源:


此版本还使用后期绑定,因此您不需要任何其他引用。

参数必须是类型
MailItem
MeetingItem
,子例程才能在Outlook规则向导中可用

试试这个

Option Explicit
Sub SendEmail(NewMail As Outlook.MailItem)

    Set NewMail = Application.CreateItem(olMailItem)

    With NewMail
        .To = "aaa@bbb"  '<--adress to whitch I want to send an email
        .Subject = "test"
        .Display
    End With

    Set NewMail = Nothing
End Sub
选项显式
子SendEmail(作为Outlook.MailItem的新邮件)
设置NewMail=Application.CreateItem(olMailItem)
与NewMail

.To=”aaa@bbb“'我在宏下成功运行,但当我尝试在Outlook中按规则运行时,它没有执行任何操作Sub-sendemail()Dim newMail as Outlook.MailItem Set newMail=Application.CreateItem(olMailItem)With newMail.to=”aaa@aaa.com.Subject=“测试”.Send End With Set newMail=Nothing End Subi更新了我的答案。此问题可能需要添加outlook引用。让我知道这是不可能的,这是所谓的规则。您可以删除此问题,并确保第三个问题不会作为重复问题关闭。如果你被要求或有更多的细节,只需编辑第三个。
Option Explicit
Sub SendEmail(NewMail As Outlook.MailItem)

    Set NewMail = Application.CreateItem(olMailItem)

    With NewMail
        .To = "aaa@bbb"  '<--adress to whitch I want to send an email
        .Subject = "test"
        .Display
    End With

    Set NewMail = Nothing
End Sub