【问题标题】:sending emails once a value is met in a column在列中满足值后发送电子邮件
【发布时间】:2019-04-29 21:42:35
【问题描述】:

我目前创建了一个代码,一旦在特定单元格中满足某个值,它将向特定个人发送 1 封电子邮件。

我需要宏搜索整个列(E 列)并在每次满足值(在 E 中)时发送一封电子邮件(在 D 列中找到的电子邮件地址),但每个 ID 号仅一次(找到在 C 列)

example:
   A        B       C        D                        E      F    G
   John     Smith   123659   john.smith@gmail.com     330    NB   Moncton
   John     Smith   123659   john.smith@gmail.com     330    NB   Shediac

所以只有一封电子邮件会发出,因为满足的值是 330,并且两个条目都来自同一个 ID 号

这是我目前拥有的代码,但它是特定于一个单元格的

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub
  If Not Application.Intersect(Range("E2"), Target) Is Nothing Then
    If IsNumeric(Target.Value) And Target.Value = 330 Then
        Call renewalemail
    End If
  End If
End Sub

Sub renewalemail()


Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)


xMailBody = "Hi," & vbNewLine & vbNewLine & _
            "Your registration to the National Transfer Inventory is up for renewal" & vbNewLine & _
            "Every year, you are required to review your selection(s) and renew your registration" & vbNewLine & vbNewLine & _
            "Please refer to the frequently asked questions (FAQ) document for more details (RDIMS# 5757800)" & vbNewLine & vbNewLine & _
            "Thank you"


            On Error Resume Next
With xOutMail
    .SentOnBehalfOfName = "XXX.ServiceCentre-CentredeService.XXX@gmail.com"
    .To = Sheets("Inventory").Range("D2").Value
    .CC = ""
    .BCC = ""
    .Subject = "RENEWAL NOTIFICATION - National Transfer Inventory / AVIS de RENOUVELLEMENT - Répertoire de Mutation"
    .Body = xMailBody
    .Display
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing

End Sub

任何帮助将不胜感激

谢谢你

 Sub Cmdrenewal_Click()

   Dim ws As Worksheet
   Dim r As Range

 Set ws = Worksheets("Inventory")

   With ws


    lr = .Range("C" & Rows.Count).End(xlUp).Row

    For I = lr To 1 Step -1
    If .Cells(I, "S") = 383 Then
    Call renewalemail
    End If

  Next I

  End With

  On Error Resume Next
 End Sub

【问题讨论】:

  • 你有什么尝试让你说 ...满足值(在 E 中)但每个 ID 号仅满足一次 ...
  • 我能够做到以下几点(见上面添加的代码)......代码搜索工作表并为符合条件的每一行发送一封电子邮件(383)......我仍然需要编码来识别位于该行 c 列中的电子邮件地址并发送到该地址。我还需要每个 ID 只发送一封电子邮件 ....因此,如果 ID 为 3569 的个人有 10 行符合 383 个条件.....使用 c 列中的地址发送一封电子邮件通知而不是 10 封电子邮件

标签: excel vba email


【解决方案1】:

存储 id。有很多方法可以做到:

或者只是根据 C 列删除重复项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2018-11-08
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多