1

VB を使用して、メールの本文に複数の行を追加したいと考えていました。メールを開いてフォーマットするためのコードの下:

With Workbooks("HEelo world.xlsx").Worksheets("Hello")
    mail.To = .Range(.Range("F:F").Find("Address1").Address).Offset(0, 1)
    mail.Cc = .Range(.Range("F:F").Find("Address2").Address).Offset(0, 1)
    mail.Subject = .Range(.Range("F:F").Find("Object").Address).Offset(0, 1)
    mail.Body = .Range(.Range("F:F").Find("Body").Address).Offset(0, 1)
    mail.Body = ....
End With

複数の行を追加するための正しい構文は何ですか?

4

2 に答える 2

1

動作するはずのこれを見つけました:

Dim strBody As String
        strBody = .Range(.Range("B:B").Find("text1").Address).Offset(0, 1) & vbCrLf _
        & .Range(.Range("B:B").Find("text2").Address).Offset(0, 1) & vbCrLf _
        & .Range(.Range("B:B").Find("text3").Address).Offset(0, 1) & vbCrLf _
        & .Range(.Range("B:B").Find("text4").Address).Offset(0, 1) & vbCrLf 
mail.Body = strBody
于 2013-03-14T14:37:00.260 に答える
1

ダミー Excel 範囲の命名ガイド

Nameを持つように範囲を変更する方法については、私が提供したリンクを使用してください。vba で名前付き参照として範囲をターゲットにすることができます。この例では、メール本文の値「BodyValue」を含むセル範囲 (例: B4:B8) を呼び出しました。

Dim strBody As String
    strBody = ""
    For Each cl in Range("BodyValue").Cells
        strBody = cl.Value & vbCrLf
    Next
mail.Body = strBody

電子メールで使用されるすべてのパーツに対してもこれを行うことができるため、オフセットを使用する代わりに、セルまたは範囲に名前を付け、VBA でその名前を参照します。これにより、名前付きセルの名前がシート内のアドレスの変更に依存しないため、シートの任意の部分に行または列を追加した場合に発生するエラーも回避されます。

于 2013-03-15T08:40:44.820 に答える