スケジュールされたタスクを経由してグループに電子メールを送信するか、少なくとも以前は使用していた他の人が作成したExcelスプレッドシートがあります。それは最近働いていません。現在私はRube Goldberg/Wile E. Coyoteシステム全体を再構築する時間がないので、修正しようとしています。 Excel文書の一つでOutlook電子メールの件名と本文の空白を作成するVBA 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
であることを書き直しや送信時にデバッグポイントを投げ、そしてoutmailのプロパティを確認し、対象とのHtmlBodyは値を持っています。私はなぜ彼らが空白の送信後に把握することはできません。
'.Send'の前に' .Save'を追加します。 – Jordan
範囲のデフォルトプロパティに頼らず、必要なプロパティを指定します: 'OutMail.Subject = Sheets(" Weight ")。 ).Value'と 'OutMail.HTMLBody = rng.Value'または' OutMail.HTMLBody = rng.Text' –
奇妙な部分は、まったく同じコードが50の他のスプレッドシートと同じように使用され、それら。 –