我想发送一些包含员工信息的邮件,如下所示。
名字: ABC 姓氏: DEF 员工ID: 0000000
我所做的如下
olmailitem.body = "First Name: " & Cells(cell.row, "D").Value & vbNewLine & "Last Name: " _
& Cells(cell.row, "E").Value & vbNewLine & "Employee ID: " & Cells(cell.row, "F").Value & vbNewLine
现在,我的问题是如何在Bold中打印上面给出的First Name
,Last Name
和Employee ID
?
答案 0 :(得分:0)
正如Joubarc所说
您可能需要查看条件格式。
假设您在列B中有要查找的值,并且想要突出显示某个范围内的所有值,例如D4:F15。
选择范围D4:F15,制作新的格式规则,然后选择“使用公式确定要格式化的单元格”。输入= ISNUMBER(MATCH(D4; $ B:$ B))作为公式,并根据需要制作格式。请注意,公式中的D4必须是范围的第一个单元格。
如果您不需要更多,那么好处是您根本不需要宏,并且格式化也可以实时完成。
答案 1 :(得分:0)
我认为你让HTMLBody变得比实际更复杂。如果你不包含任何html标签,HTMLBody和Body几乎是一样的。
每当我连接一串字符串时,我喜欢将它们放在数组中,然后使用Join来构建字符串。它效率更高,但即使是小型程序,我认为它看起来更干净。在下面的示例中,我将所有员工的东西放入一个名为aFirstLine()的数组中,然后将其与所有元素之间的空格连接起来。然后我把它加上一个名为aBody()的数组中的所有其他行,我将它连接在一起,用HTML换行符分隔元素。
这是一个例子。
Sub Test()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim aFirstLine(1 To 6) As String
Dim aBody(1 To 20) As String
Dim i As Long
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
'Put all the employee pieces in an array with html codes
aFirstLine(1) = "<b>First Name:</b>"
aFirstLine(2) = "ABC"
aFirstLine(3) = "<b>Last Name:</b>"
aFirstLine(4) = "DEF"
aFirstLine(5) = "<b>Employee ID</b>:"
aFirstLine(6) = "0000000"
'join the employee stuff into one string
aBody(1) = Join(aFirstLine, Space(1))
'this will create a blank line
aBody(2) = " "
'Create all the other lines
For i = 3 To 20
aBody(i) = "This is line " & i
Next i
'join the body array using the html line break as a separator
With olMail
.HTMLBody = Join(aBody, "<br />")
.Display
End With
End Sub
请注意,只有第一行包含html标记。无论我使用Body还是HTML Body,所有其他行的连接都完全相同。