【问题标题】:Macro to export excel email IDs to outlook distribution list将 Excel 电子邮件 ID 导出到 Outlook 分发列表的宏
【发布时间】:2015-10-27 03:46:39
【问题描述】:

有没有办法编写一个将电子邮件 ID 列从 excel 表导出到 Outlook 分发列表的宏?

理想情况下,每次运行宏时,我都希望用新的分发列表替换旧的。

以下是我一直在尝试的,

Public Sub DistributionList()

Dim objOutlook As New Outlook.Application
Dim objNameSpace As Outlook.Namespace
Dim objDistList As Outlook.DistListItem
Dim objMail As Outlook.MailItem
Dim objRecipients As Outlook.Recipients


Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objDistList = objOutlook.CreateItem(olDistributionListItem)
Set objMail = objOutlook.CreateItem(olMailItem)
Set objRecipients = objMail.Recipients
objDistList.DLName = InputBox("Enter name of Distribution List")

For i = 1 To Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
objRecipients.Add (Range("C" & i).Value)
Next i

objDistList.AddMembers objRecipients
objDistList.Display
objRecipients.ResolveAll

Set objOutlook = Nothing
Set objNameSpace = Nothing
Set objDistList = Nothing
Set objMail = Nothing
Set objRecipients = Nothing

End Sub

但是在运行这个时,我得到一个错误,用户定义的类型没有定义。

这可以纠正还是有更好的方法来做到这一点?

有人可以帮我做这件事吗?谢谢

【问题讨论】:

  • 您是否添加了对 Outlook 库的引用? (在工具>参考下)。这可以解释你的错误。
  • @nwhaught 在我这样做之后它正在工作。但我有一个问题。这个是从 B 列中获取电子邮件 ID,但它也将名称显示为电子邮件 ID。我们可以更正此代码以从 A 列中获取名称吗?

标签: vba excel outlook


【解决方案1】:

用户定义类型未定义错误几乎总是意味着您忘记添加引用。在工具>>参考下添加它。在您的情况下,您需要 Outlook 库。

要更改查找名称的列,请更改

Range("C"

引用包含名称的列。

【讨论】:

  • 感谢您的帮助。我能够做到这一点。我还有一个问题。我想遍历不同的团队并为每个团队创建不同的分发列表。我为第一个团队使用了以下代码,ActiveSheet.Range("$A$1:$C$10").AutoFilter Field:=3, Criteria1:= _ "Team 1" objDistList.DLName = "Team 1" 但我是无法为第二队做到这一点。您能帮我编辑这段代码以在团队中循环吗?
  • 如果您正在寻找单独的问题,stackoverflow.com/questions/33354269/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多