我有一个Excel电子表格由其他人通过计划任务发送电子邮件到组,或者至少已经习惯了。它最近停止了工作。我现在没有时间重建他的整个Rube Goldberg/Wile E. Coyote系统,所以我试图修复它。VBA Excel创建Outlook电子邮件主题和正文空白
在Excel文档中的一个,该代码存在
Set rng = Nothing
On Error Resume Next
Set rng = Sheets("Weight").Range("A2")
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = Sheets("Weight").Range("A1")
.HTMLBody = Convert.ToString(rng)
.Send
End With
每当我看到那么多的“上错误继续下一步”在我的东西砂砾我的牙齿。
发生了什么是它“工作”,但它发送的电子邮件是空白的。在调试中,我可以看到主题内容和正文内容都存在并具有值。我重写它是
OutMail.To = "[email protected]"
OutMail.CC = ""
OutMail.BCC = ""
OutMail.Subject = Sheets("Weight").Range("A1")
OutMail.HTMLBody = Convert.ToString(rng)
OutMail.Send
和发送扔了一个调试点,并检查发件的性质和主体和htmlbody具有值。我找不到为什么发送后他们是空白的。
在'.Send'前添加'.Save' – Jordan
不要依赖该范围的默认属性 - 只需指定您想要的属性:'OutMail.Subject = Sheets(“Weight”)。Range(“A1” ).Value'和'OutMail.HTMLBody = rng.Value'或'OutMail.HTMLBody = rng.Text' –
奇怪的部分(对我来说)是完全相同的代码在50个其他电子表格中使用,并且工作正常那些。 –