2017-11-01 7 views
0

私は、特定の範囲のコンテンツをOutlook電子メールにペーストするボタンを追加しようとしています。そうすることによって、私は次のコードを使用しています:Excel VBA RangeToHTML

Private Sub CommandButton4_Click() 

Dim rng As Range 
Dim OutApp As Object 
Dim OutMail As Object 

Range("P25:P32,Q25:Q32,R25:R32,S25:S32,T25:T32").Select 

Set rng = Nothing 
On Error Resume Next 
Set rng = Selection.SpecialCells(xlCellTypeVisible) 
On Error GoTo 0 

If rng Is Nothing Then 
    MsgBox "The selection is not a range or the sheet is protected" 
    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 = Range("F22").Value 
    .CC = "" 
    .BCC = "" 
    .Subject = Range("F23").Value 
    .HTMLBody = RangetoHTML(rng) 
    If Toggle_3.Value = True Then 
     .Display 
    ElseIf Toggle_4.Value = True Then 
     .Send 
    End If 
End With 
On Error GoTo 0 

With Application 
    .EnableEvents = True 
    .ScreenUpdating = True 
End With 

Set OutMail = Nothing 
Set OutApp = Nothing 

Call SaveFile 

End Sub 
私が持っているために使用されるコードの行7時

「P25:T32」を、私はそれがしてきたかもしれないと思ったので、私はそれにそれを変更するものエラーが発生しました。

ボタンをクリックすると、それは私にエラーメッセージを表示します。

Subまたは関数が

を定義し、それが.HTMLBody = RangetoHTML(rng)ラインを強調されていません。

私は間違っていますか?

+0

「私は間違っていますか?」:[Ron de Bruin](https://www.rondebruin.nl/win/s1/outlook/bmail2.htm)の半分のコードしかコピー&ペーストしていないので、コードがどのように動作するかを理解しよう。 –

+0

'Function RangetoHTML(rng As Range)'がありません。私の最初のコメントのリンクを参照してください。 –

答えて

0

Axel RichterとコメントされたFunction RangetoHTML(rng As Range)が見つかりませんでした。