周二,九月20 2022
  1 回复
  4.9K访问
0
投票
解开
嗨,我对 excel 很陌生,想知道是否可以设置一个 excel 代码,以便在列中的值标记为已完成时向特定人员发送电子邮件。 例如,如果 JobX 在 A2 中,并且在同一行中项目经理的姓名首字母在该行 B2 中,则此工作在 C2 中标记为已完成,当 C 列标记为已完成时,应向其姓名首字母的 PM 发送一封电子邮件在那一排。 我找到了一个可以在列的单元格被标记为已完成时发送电子邮件的代码,但我想知道我是否可以更具体,例如在满足某些条件时向特定人发送电子邮件。 谢谢,
克里斯
0
投票
解开
您好,

请尝试以下代码 :)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Range("c:c"), Target) Is Nothing Then Exit Sub
If Target.Value = "done" Then
Set xRg = Target.Offset(0, -1) 'Find email address
Call Mail_small_Text_Outlook(xRg.Value)
End If

End Sub

Sub Mail_small_Text_Outlook(ByVal xTo As String)
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use
' .Send
End With
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

您提到您想向 PM 发送一封电子邮件,其首字母与标记为已完成的同一行相同。 他/她的电子邮件地址是否在同一行? 第 6 行的代码有助于找到项目经理的姓名首字母,您可以更改它以使其找到电子邮件地址。

请将第 5 行中的字符串“done”更改为您用来标记作业已完成的实际字符串。

请注意,您可以根据需要更改下面的代码段。
xMailBody = "你好" & vbNewLine & vbNewLine & _
“这是第 1 行” & vbNewLine & _
“这是第 2 行”
出错时继续下一步
使用 xOutMail
.To = xTo
.CC =“”
.BCC =“”
.Subject =“按单元格值测试发送”
.Body = xMailBody
.display '或使用
' 。发送
结束


如果您有任何问题,请随时问我。

阿曼达
  • 页:
  • 1
目前还没有回复。