首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将电子邮件列表复制到Outlook

将电子邮件列表复制到Outlook
EN

Stack Overflow用户
提问于 2018-01-31 19:53:58
回答 1查看 147关注 0票数 0

有人能帮我做下面的代码吗?下面是一段代码,用于将电子邮件id的列表从"Sheet1“单元格"B2”复制到具有数据的"n“行数。

我在这方面面临两个问题。

1) HTMLBody文本不复制到电子邮件中。

2) Sheet1提供的电子邮件收件人列表,B2继续在电子邮件收件人列表("To“列表)上没有被复制。

提前感谢!

代码语言:javascript
运行
复制
Sub MeetingMacro()
'MsgBox Hour(Now)
If Weekday(Now, vbMonday) >= 6 And Hour(Now) > 12 Then
Exit Sub
End If

Application.ScreenUpdating = False

Dim pt As PivotTable
Set pt = ThisWorkbook.Sheets("Sheet2").PivotTables("PivotTable")
pt.RefreshTable
Application.CalculateUntilAsyncQueriesDone
Call saveAsXlsx1
Application.CalculateUntilAsyncQueriesDone
Call savefile
Application.CalculateUntilAsyncQueriesDone
Call Send_Range
'Call Send_Range


End Sub

Sub Send_Range()

   Dim TBL As ListObject
     ThisWorkbook.Activate

   ThisWorkbook.EnvelopeVisible = False
   ThisWorkbook.Sheets("Sheet2").Range("A1:B30").Select
    ThisWorkbook.Activate
   With ActiveSheet.MailEnvelope

            SDest = ""
       For iCounter = 2 To WorksheetFunction.CountA(Columns(3))
           If SDest = "" Then
               SDest = Cells(iCounter, 3).Value
               SDest.Value.Select
           Else
               SDest = SDest & ";" & Cells(iCounter, 3).Value
           End If
       Next iCounter

      .Item.To = SDest
      .Item.CC = "someone@example.com"
      .Item.Subject = "[URGENT] Meeting has been cancelled. "
      .Item.HTMLBody = "Hello," & vbCrLf & "Meeting has been cancelled. Fresh invite will be sent soon.” & vbCrLf & "Regards"
      .Item.Attachments.Add "C:\Attachment.xlsx" 'ActiveWorkbook.FullName
      .Item.Send
   End With

   'MsgBox (TimeOfDay)
End Sub


'MsgBox (TimeOfDay)
Sub savefile()
 Application.ScreenUpdating = False
     ThisWorkbook.Activate
     Application.ScreenUpdating = True
ThisWorkbook.Save
End Sub
Sub saveAsXlsx1()
ThisWorkbook.Worksheets(Array("Sheet2")).Copy
Application.DisplayAlerts = False
 ActiveSheet.Shapes.Range("FetchData").Delete
ActiveWorkbook.SaveAs Filename:="C:\Attachment.xlsx"
ActiveWorkbook.Close
End Sub

Sub Meeting4()
ThisWorkbook.Application.DisplayAlerts = False
ActiveWorkbook.Save
ThisWorkbook.Close
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 21:13:17

假设您在Sheet1中有单元格B2:B30 (全部位于同一列),其中包含电子邮件地址。您想要的是获取这些单元格中的值,并将它们转换为一个一维数组--就像这样:

代码语言:javascript
运行
复制
Dim values As Variant
values = Application.WorksheetFunction.Transpose(Sheet1.Range("B2:B30").Value)

有了一个一维的电子邮件地址数组,你所需要做的就是把它变成一个StringJoin函数正是为此而设的:

代码语言:javascript
运行
复制
Dim recipients As String
recipients = Join(values, ";")

仅此而已!...assuming单元格都包含一个电子邮件地址字符串。如果一个单元格包含错误值,则可能会有麻烦。如果有空白,请期待空白(虽然不会有什么不同)。如果要抓取的范围不是刻在石头上的,就研究如何使它更有活力。

HtmlBody需要一个包含HTML的HTML编码字符串.如果只有纯文本,则使用Body属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48550399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档