以前用于分配电子邮件地址的工作代码在 Windows 10 升级中产生错误:对象 '_Mailitem' 的方法 'To' 失败

Previously working code to assign email address generates error in Windows 10 upgrade: Method 'To' of object '_Mailitem' failed

这一直有效,直到 Windows 10 升级。

我在尝试从 Excel:

发送电子邮件时收到此错误

Run-time error '-2147417851 (80010105)': Method 'To' of object'_MailItem' failed

导致此问题的代码是:

Dim aOutlook As Object

....

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)

aEmail.To = "emailaddress"

我被告知这是因为我正在绑定 'later',这是一个错误(请参阅 here)。要绑定 'early',我尝试了以下方法:

Dim aOutlook As Outlook.Application
Dim aMail As Outlook.MailItem

Set aOutlook = New Outlook.Application
Set aEmail = aOutlook .CreateItem(olMailItem)

aEmail.To = "emailaddress"
aEmail.Display

现在我得到错误:

Microsoft Office Excel is waiting for another application to complete an OLE action.

在给出与最初相同的错误之前。

这有点奇怪,但答案在这里。在我的简单问题中,我输入:

aEmail.To = "emailaddress"

但我实际上有

aEmail.To = Cells(IntCurrentRow, 3)

其中 Cells(IntCurrentRow, 3) 包含电子邮件地址。这似乎是问题所在。当我输入以下内容时它起作用了。

emailAddress = Cells(IntCurrentRow, 3)
aEMail.To = emailAddress

我不确定为什么它不直接获取地址,但更改它已经解决了问题。感谢所有的建议。

我正在做类似的事情,但从表单上的文本框填充。

oMail.To = frmMain.txtRecepients 无效。但, oMail.To = frmMain.txtRecepients.value 做到了。

我想知道它是不是试图将 .to 设置为对象而不是对象的值。明确告诉它使用该值似乎已经修复了它。