EXCEL 判定值的变化并自动发邮件
发布网友
发布时间:2022-04-23 20:51
我来回答
共1个回答
热心网友
时间:2023-10-09 10:23
Public x
Private Sub Worksheet_Activate()
x = [A1].Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cm, stUl As String
If Target.Value <> x And Target.Address = "$A$1" Then
Set cm = CreateObject("CDO.Message")
cm.From = "vbaemail@126.com" '设置发信人的邮箱,请必须改动
stUl = "http://schemas.microsoft.com/cdo/configuration/"
With cm.Configuration.Fields
.Item(stUl & "smtpserver") = "smtp.126.com" '126的SMTP服务器地址,发信人如果用的不是126的邮箱,请改此处
.Item(stUl & "smtpserverport") = 25 'SMTP服务器端口
.Item(stUl & "sensing") = 2 '发送端口
.Item(stUl & "smtpauthenticate") = 1 '
.Item(stUl & "sensername") = "vbaemail" '发送方邮箱名称,必须改来与前边一至
.Item(stUl & "sendpassword") = "vbaemail123" '发送方邮箱密码,必须改来与前边一至的邮箱密码
cm.Subject = "Test" '设定邮件的主题,按你的需要改动
cm.To = "enymail" '设置收信人的邮箱
cm.HtmlBody = Target.Value '邮件正文
.Update
cm.Send '最后当然是执行发送了
End With
x = Target.Value
End If
End Sub