如何使用VBA将文本引用到相应的电子邮件地址

adit123

因此,我建立了一个电子邮件系统,在其中将电子邮件发送给拥有特定项目的人,这些人的到期日即将到来。我的Excel工作表上至少有1,000个项目,每个项目都有一个特定的所有者。但是,所有者使用ID标记。该ID指的是另一张名为“ Permissions”的工作表中的电子邮件地址。我的电子邮件功能有效,但是我的接收方遇到了麻烦。我无法将包含项目的工作表上的ID与另一工作表中的电子邮件地址匹配。我对VBA还是很陌生,所以请原谅我的代码。我仍在学习。谢谢!

工作表名称“注册”是包含所有项目和截止日期的工作表。

代码 :

Option Explicit

Sub TestEmailer()

Dim Row        As Long
Dim lstRow      As Long

Dim Message As Variant
Dim Frequency As String 'Cal Frequency
Dim DueDate As Date 'Due Date for Calibration
Dim vbCrLf As String 'For HTML formatting
Dim registerkeynumber As String 'Register Key Number
Dim class As Variant 'Class
Dim owner As String ' Owner
Dim status As String 'Status
Dim ws As Worksheet
Dim toList As Variant
Dim Ebody As String
Dim esubject As String
Dim Filter As String
Dim LQAC As String


With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True

End With

Set ws = Sheets(1)
ws.Select

lstRow = WorksheetFunction.Max(2, ws.Cells(Rows.Count, Range("CalDueDate").Column).End(xlUp).Row)


For Row = 2 To lstRow


DueDate = CDate(Worksheets("Register").Cells(Row, Range("DueDate").Column).Value) 'DUE DATE




registerkeynumber = Worksheets("Register").Cells(Row, Range("RegisterKey").Column).Value

class = Worksheets("Register").Cells(Row, Range("Class").Column).Value


status = Worksheets("Register").Cells(Row, Range("Status").Column).Value

LQAC = Worksheets("Register").Cells(Row, Range("LQAC").Column).Value

Filter = Worksheets("Permissions").Cells(Row, Worksheets("Permissions").Range("MailFilter").Column).Value


If DueDate - Date <= 7 And class > 1 And status = "In Service" And DueDate <> "12:00:00 AM" Then

vbCrLf = "<br><br>"

'THIS IS WHERE I AM NOT SURE IF I AM REFERENCING CORRECTLY.  I AM NOT SURE HOW TO REFERENCE THE ID FROM THE 'REGISTER' AND MATCH IT WITH THE EMAIL ADDRESS IN THE 'PERMISSIONS' WORKSHEET. AS OF NOW I AM ONLY REFERENCING THE EMAIL ADDRESS BUT THEY ARE NOT MATCHING UP.

toList = Worksheets("Permissions").Cells(Row, Worksheets("Permissions").Range("Email").Column).Value                                                   'RECEPIENT OF EMIAL


esubject = "TEXT " & Cells(Row, Range("Equipment").Column).Value & " is due in the month of " & Format(DueDate, "mmmm-yyyy")


        Ebody = "<HTML><BODY>"
        Ebody = Ebody & "Dear " & Cells(Row, Range("LQAC").Column).Value & vbCrLf
        Ebody = Ebody & "</BODY></HTML>"





SendEmail Bdy:=Ebody, Subjct:=esubject, Two:=toList





End If

Next Row

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True

End With


End Sub

Function SendEmail(Bdy As Variant, Subjct As Variant, Optional Two As Variant = "Email@xxx", Optional ReplyTo As Variant = "Email@xxx", Optional Carbon As Variant = "Email@xxx", Optional Attch As Variant = "FilePath", Optional Review As Boolean = False)
    Dim OutlookEM As Outlook.Application
    Dim EMItem As MailItem



         If Not EmailActive Then Exit Function


        If Two = "Email@xxx" Then
            MsgBox "There is no Address to send this Email"
            Two = ""
            Review = True
            'Exit Function
        End If
        'Create Outlook object
         Set OutlookEM = CreateObject("Outlook.Application")

         'Create Mail Item
         Set EMItem = OutlookEM.CreateItem(0)

        With EMItem
            .To = Two
            .Subject = Subjct
            .HTMLBody = Bdy

        End With
        If ReplyTo <> "Email@xxx" Then EMItem.ReplyRecipients.Add ReplyTo
        If Attch <> "FilePath" Then EMItem.Attachments.Add Attch
        If Carbon <> "Email@xxx" Then EMItem.CC = Carbon
        If Review = True Then
            EMItem.Display (True)
        Else
            EMItem.Display
           ' EMItem.Send
        End If
End Function

我认为我能够理解这里的问题。您的代码似乎没有使用任何vlookup公式或匹配公式来查找电子邮件。除非它们位于不同工作表之间的同一行中,否则您将需要找到该值。

VBA可以使用您通常在Excel中使用的功能。

如果您在下面的代码中加上正确的范围和列号,那么您应该能够根据ID找到正确的电子邮件地址。

' instead of 1 below, use the column for the id to look up
lookupValue = Worksheets("Register").Cells(Row, 1).Value

' range of the ids and emails in the permissions table - edit whatever the range should be
Rng = Worksheets("Permissions").Range("A1:B100")

' column to look up - number of columns between the id and email in the permissions tab
col = 2

' whether you want excel to try to find like match for the lookup value
' pretty much never have this be true if you want to have confidence in the result
likeMatch = False

emailAddress = WorksheetFunction.VLookup(lookupValue, Rng, col, likeMatch)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将邮件中的电子邮件地址添加到文本框?

来自分类Dev

如何将邮件中的电子邮件地址添加到文本框?

来自分类Dev

如何使用Selenium WebDriver在Edge的文本输入字段中输入电子邮件地址?

来自分类Dev

如何使用CMD从文本文件中提取电子邮件地址和密码?

来自分类Dev

如何使用VBA从PR_TRANSPORT_MESSAGE_HEADERS获取电子邮件地址

来自分类Dev

如何使用Firebase电子邮件地址验证

来自分类Dev

如何使用Express / Node确认电子邮件地址?

来自分类Dev

如何使用vuelidate验证电子邮件地址?

来自分类Dev

如何使用Python解码编码的电子邮件地址?

来自分类Dev

如何使用Selenium Python打印电子邮件地址

来自分类Dev

如何使用GnuPG管理多个电子邮件地址?

来自分类Dev

如何使用jQuery验证电子邮件地址?

来自分类Dev

如何隐藏电子邮件地址

来自分类Dev

如何隐藏电子邮件地址?

来自分类Dev

如何将电子邮件退回至特定电子邮件地址

来自分类Dev

使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

来自分类Dev

使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

来自分类Dev

如何将mailto放在文本字符串中的电子邮件地址周围

来自分类Dev

如何合并两个或多个文本文件并使用Python删除重复的电子邮件地址?

来自分类Dev

使用Yesod将邮件发送到电子邮件地址

来自分类Dev

使用Yesod将邮件发送到电子邮件地址

来自分类Dev

如何在ASP.NET MVC中使用邮政将电子邮件发送到数据库中的多个电子邮件地址

来自分类Dev

在 mailto 链接上使用 Chrome 的“复制电子邮件地址”会返回编码的无用文本而不是正确的电子邮件地址

来自分类Dev

如何设置将域电子邮件地址转发到我的私人电子邮件?

来自分类Dev

使用bat文件将文件发送到电子邮件地址而不暴露电子邮件信息?

来自分类Dev

如何使用php中的api调用将电子邮件地址添加到mailchimp列表

来自分类Dev

如果使用的电子邮件地址和密码错误,我如何将客户重定向到“注册”页面?

来自分类Dev

无论格式如何,都可以从文本字段获取电子邮件地址

来自分类Dev

如何确保用户在文本框中输入了电子邮件地址?

Related 相关文章

  1. 1

    如何将邮件中的电子邮件地址添加到文本框?

  2. 2

    如何将邮件中的电子邮件地址添加到文本框?

  3. 3

    如何使用Selenium WebDriver在Edge的文本输入字段中输入电子邮件地址?

  4. 4

    如何使用CMD从文本文件中提取电子邮件地址和密码?

  5. 5

    如何使用VBA从PR_TRANSPORT_MESSAGE_HEADERS获取电子邮件地址

  6. 6

    如何使用Firebase电子邮件地址验证

  7. 7

    如何使用Express / Node确认电子邮件地址?

  8. 8

    如何使用vuelidate验证电子邮件地址?

  9. 9

    如何使用Python解码编码的电子邮件地址?

  10. 10

    如何使用Selenium Python打印电子邮件地址

  11. 11

    如何使用GnuPG管理多个电子邮件地址?

  12. 12

    如何使用jQuery验证电子邮件地址?

  13. 13

    如何隐藏电子邮件地址

  14. 14

    如何隐藏电子邮件地址?

  15. 15

    如何将电子邮件退回至特定电子邮件地址

  16. 16

    使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

  17. 17

    使用mailcore(iOS),如何从特定电子邮件地址获取所有电子邮件?

  18. 18

    如何将mailto放在文本字符串中的电子邮件地址周围

  19. 19

    如何合并两个或多个文本文件并使用Python删除重复的电子邮件地址?

  20. 20

    使用Yesod将邮件发送到电子邮件地址

  21. 21

    使用Yesod将邮件发送到电子邮件地址

  22. 22

    如何在ASP.NET MVC中使用邮政将电子邮件发送到数据库中的多个电子邮件地址

  23. 23

    在 mailto 链接上使用 Chrome 的“复制电子邮件地址”会返回编码的无用文本而不是正确的电子邮件地址

  24. 24

    如何设置将域电子邮件地址转发到我的私人电子邮件?

  25. 25

    使用bat文件将文件发送到电子邮件地址而不暴露电子邮件信息?

  26. 26

    如何使用php中的api调用将电子邮件地址添加到mailchimp列表

  27. 27

    如果使用的电子邮件地址和密码错误,我如何将客户重定向到“注册”页面?

  28. 28

    无论格式如何,都可以从文本字段获取电子邮件地址

  29. 29

    如何确保用户在文本框中输入了电子邮件地址?

热门标签

归档