Excel 要发送的宏将不同的文件附加到多个单独的电子邮件,vba

Excel 要发送的宏将不同的文件附加到多个单独的电子邮件,vba,excel,vba,email,pdf,Excel,Vba,Email,Pdf,我是一名计算机技术员,不是程序员,但在我的新工作中,我被要求在excel(vba)中完成一个宏。 它包括一列中的身份证号码列表(每次使用时单元格的数量是可变的,例如,一天可以放置20人,另一天可以放置12人),以及另一列中的电子邮件。 文件夹中有一些pdf文档,其名称是excel中显示的人员的id卡 他们问我的是,如果按字母顺序订购身份证,请携带身份证和电子邮件。身份证将用于查找您相应的pdf,并将其作为附件添加,以便通过电子邮件发送给谁?在那里,该单元格与电子邮件数据一起使用。必须对现有的每一

我是一名计算机技术员,不是程序员,但在我的新工作中,我被要求在excel(vba)中完成一个宏。 它包括一列中的身份证号码列表(每次使用时单元格的数量是可变的,例如,一天可以放置20人,另一天可以放置12人),以及另一列中的电子邮件。 文件夹中有一些pdf文档,其名称是excel中显示的人员的id卡

他们问我的是,如果按字母顺序订购身份证,请携带身份证和电子邮件。身份证将用于查找您相应的pdf,并将其作为附件添加,以便通过电子邮件发送给谁?在那里,该单元格与电子邮件数据一起使用。必须对现有的每一行执行此操作,使用pdf文件将其附加,并向同一行的地址发送电子邮件,直到工作表上没有更多行为止

有人能告诉我怎么做,或者告诉我我需要的功能吗

多谢各位

图形化理念:

宏当前设置为
。显示电子邮件,不发送。运行完测试后,您需要将其更改为
。发送
,以实际发送电子邮件

您还需要更新
strLocation
的值。在引号中,您需要放置存放所有目标PDF的文件夹的位置

在这里,只要每一行与一个单独的单元格关联,单元格的顺序就无关紧要

希望这些电子邮件是内部的-您不应该将其用于外部邮件列表,因为您无法提供取消订阅的选项。如果怀疑您有垃圾邮件,Outlook可能会标记/禁止您的帐户

这假定
列C
中的值是Outlook将按原样识别的实际电子邮件地址。(urdearboy@email.com)



嗨@Urderboy,谢谢你的帮助,我会在周一的工作中尝试。要使用公司电子邮件系统,我读到我需要windows 2000库的协作数据对象(CDO),是这样吗?如果是这样的话,我将寻求有关信息。再次感谢!我经常使用这个宏作为isHi@urdearboy,我指的不是使用邮件客户端,例如outlook,而是在宏本身中配置我自己公司的发送邮件服务器的参数,我发现我必须使用CDO。我正在修改你给我的东西。:-)您好@urderboy我快完成我的代码了:但是我在做计数器时遇到了问题(我认为sintaxys出错或者我遗漏了一些东西)。wscript.shell弹出窗口正在工作,为每封电子邮件显示一条消息1秒,但我需要显示“I”/总内容行,例如:电子邮件nº1/30发送到john@doe.com电子邮件号码:2/30发送至bob@doe.com…我做的最后一件事是计算使用的总行数,但我不知道如何跳过标题(第1行),或者最好从特定列中计算行数(电子邮件)在其他工作表中(我有两个工作表,一个是我第一封邮件中的表格,另一个和第二张工作表包含所有宏按钮和电子邮件配置参数)。提前谢谢!
Sub CorpCard()

Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range

Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")

On Error GoTo cleanup

For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
    If cell.Value Like "?*@?*.?*" Then
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .SentOnBehalfOfName = "[your associated Outlook email here]"
            .to = cell.Value
                .Subject = "Subject goes here"
                .Body = "Hi " & Range("B" & cell.Row).Value & "," _

                'Body to be patsed here

            strLocation = "C:\Users\urdearboy\Desktop\File Name\" & Cells(cell.Row, "D").Value & ".pdf"
            .Attachments.Add (strLocation)
        .Display
        '.Send
        End With

        On Error GoTo 0
        Set OutMail = Nothing
    End If
Next cell

cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub