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

命名 Excel 范围的傻瓜指南

使用我提供的链接来了解如何将范围修改为具有Name。您可以将范围定位为 vba 中的命名引用。对于此示例,我们将包含邮件正文值的单元格区域(例如 B4:B8)称为“BodyValue”

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 回答
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 回答