电子邮件到arraysVBA

下面的代码完全适用于我所需要的,除了我想要的.To从“A1”开始的特定工作表“电子邮件列表”中的数组。 我从这些代码中添加或减去的所有内容只会导致代码停止。 任何帮助是真正的赞赏。

  Dim AWorksheet As Worksheet Dim Sendrng As Range Dim rng As Range On Error GoTo StopMacro With Application .ScreenUpdating = False .EnableEvents = False End With Set Sendrng = Worksheets("Daily Notes").Range("A1:M67") Set AWorksheet = ActiveSheet With Sendrng .Parent.Select Set rng = ActiveCell .Select ActiveWorkbook.EnvelopeVisible = True With .Parent.MailEnvelope .Introduction = "Daily Notes *ad items are in bold*" With .Item .To = "" .CC = "" .BCC = "" .Subject = "Daily Notes" .Send End With End With rng.Select End With AWorksheet.Select StopMacro: With Application .ScreenUpdating = True .EnableEvents = True End With ActiveWorkbook.EnvelopeVisible = False End Sub 

所以,如果你重新提出你的问题,这是这样的:

如何获取Excel中的一个范围内的值,以“;”分隔的string?

假设你的值在“A1:D1”的范围内。 那么,如果你介绍下面的function:

 Public Function GetArrayToString(myRange As Range) As String Dim cnt As Range For Each cnt In myRange GetArrayToString = GetArrayToString & cnt & ";" Next cnt End Function 

你会得到像value1; value2; value3; value4这样的value1; value2; value3; value4 value1; value2; value3; value4 value1; value2; value3; value4 。 这是如何在你的代码中引用它:

.To = GetArrayToString(Worksheets("TheSpecialOneAkaMrM").Range("A1:D1"))