我有一个包含7个工作表的工作簿。我在下面的vba中发送一封电子邮件,只要在特定的表格上满足某个值。从Excel发送多封电子邮件
每张纸都有不同的值和不同的附件发送。如何为每张表添加代码以便发送电子邮件?
在此先感谢
设置为一般(声明)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range("M4:M368"), Target) Is Nothing Then
If IsNumeric(Target.Value) And Target.Value < 3500 Then
Call Fuel_LevelW03
End If
End If
End Sub
后跟一个模块 一般Fuel_LevelW03
Sub Fuel_LevelW03()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "Hi" & vbNewLine & vbNewLine & _
"Please order fuel as attached." & vbNewLine & _
"" & vbNewLine & _
"Kind Regards" & vbNewLine & _
""
On Error Resume Next
With OutMail
.To = "email address"
.CC = "email address"
.BCC = ""
.Subject = "Fuel Order W03"
.Body = strbody
.Attachments.Add ("H:\Fuel Order Sheets\Glen Eden W03 Pump Station.xlsx")
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
_Change事件是针对每个工作表的,因此您需要在该级别编码陷阱。您可以概括该模块以接受来自各种工作表级调用的参数。 –
谢谢安迪。所以,我要为每个工作表创建一个更改事件,以更改目标值和调用“名称”。我如何概括模块? – Trace