【问题标题】:Send email using Vlookup to match email address使用 Vlookup 发送电子邮件以匹配电子邮件地址
【发布时间】:2019-04-17 14:48:20
【问题描述】:

我正在尝试查找一个单元格以返回联系人列表中的匹配项。

当它发现匹配时,它应该向与该位置相关联的人发送一封电子邮件。

Sub vLookupAnotherWorksheet()
    Dim myLookupValue As String
    Dim myFirstColumn As Long
    Dim myLastColumn As Long
    Dim myColumnIndex As Long
    Dim myFirstRow As Long
    Dim myLastRow As Long
    Dim myVLookupResult As Long
    Dim myTableArray As Range
    
    myLookupValue = "H3:H13"
    myFirstColumn = 1
    myLastColumn = 8
    myColumnIndex = 8
    myFirstRow = 3
    myLastRow = 13
    
    With Worksheets("EVC_Contact_List")
        Set myTableArray = .Range(.Cells(myFirstRow, myFirstColumn), .Cells(myLastRow, myLastColumn))
    End With
    
    On Error Resume Next
    myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray, myColumnIndex, False)
    
    If IsError(myVLookupResult) = False Then
        Call Send_Email(myvalue)
    End If
    
End Sub
    
Sub Send_Email(myvalue As Variant)
        
    Dim Email_Subject As String, Email_Send_From  As String, Email_Body As String, i As Integer
    Dim Mail_Object As Object, nameList As String, namelist2 As String, o As Variant
    
    Email_Send_From = ""
        
    If Sheets("EVC_Contact_List").Cells(2, 4).Value <> "" Then
        nameList = Join(Application.WorksheetFunction.Transpose(Sheets("EVC_Contact_List").Range("D2:D29")))
        namelist2 = Join(Application.WorksheetFunction.Transpose(Sheets("EVC_Contact_List").Range("F2:F29")))
    End If
  
    Set Mail_Object = CreateObject("Outlook.Application")
    With Mail_Object.CreateItem(o)
        .Subject = "Unit(s) Excceding Days as Loaner"
        .To = nameList
        .Cc = namelist2
        .display
    End With
    Application.DisplayAlerts = False
    
End Sub

如果在联系人列表中找到位置 XXXX,并且 Johnsmith@gmail.com 与该位置相关联,则它应仅向 John Smith 发送电子邮件。

我的代码正在向联系人列表中的每个人发送一封电子邮件。

【问题讨论】:

  • 嗨。什么调用 Send_Email(myvalue) ?不应该调用 Send_Email(myVLookupResult) 吗?
  • 我尝试调用发送电子邮件 (mylookupresult) 并产生相同的结果

标签: vba match vlookup offset


【解决方案1】:

你有这个:

nameList = Join(Application.WorksheetFunction.Transpose(Sheets("EVC_Contact_List").Range("D2:D29")))

不应该是Vlookup功能吗?

【讨论】:

    猜你喜欢
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2016-01-21
    • 2014-07-20
    • 2014-09-18
    • 2012-07-14
    • 1970-01-01
    相关资源
    最近更新 更多