gpt4 book ai didi

excel - 如何在 VBA 宏代码中嵌入 CC 和 BCC,同时将行集发送给唯一的人

转载 作者:行者123 更新时间:2023-12-03 03:37:53 24 4
gpt4 key购买 nike

我有一个宏,可以通过电子邮件将一行或多行发送给某个范围内的每个人。我只是想知道如何添加每封电子邮件中都相同的抄送和密件抄送。我对 Excel VBA 很熟悉。请帮忙。

这是代码

Sub Send_Row_Or_Rows_1()

Dim OutApp As Object
Dim OutMail As Object
Dim rng As Range
Dim Ash As Worksheet
Dim Cws As Worksheet
Dim Rcount As Long
Dim Rnum As Long
Dim FilterRange As Range
Dim FieldNum As Integer
Dim mailAddress As String
Dim StrBody As String

On Error GoTo cleanup
Set OutApp = CreateObject("Outlook.Application")

With Application
.EnableEvents = False
.ScreenUpdating = False
End With


Set Ash = ActiveSheet

'Set filter range and filter column (Column with names)
Set FilterRange = Ash.Range("A1:H" & Ash.Rows.Count)
FieldNum = 1 'Filter column = A because the filter range start in A

'Add a worksheet for the unique list and copy the unique list in A1
Set Cws = Worksheets.Add
FilterRange.Columns(FieldNum).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Cws.Range("A1"), _
CriteriaRange:="", Unique:=True

'Count of the unique values + the header cell
Rcount = Application.WorksheetFunction.CountA(Cws.Columns(1))

'If there are unique values start the loop
If Rcount >= 2 Then
For Rnum = 2 To Rcount

'Filter the FilterRange on the FieldNum column
FilterRange.AutoFilter Field:=FieldNum, _
Criteria1:=Cws.Cells(Rnum, 1).Value

'Look for the mail address in the MailInfo worksheet
mailAddress = ""
On Error Resume Next
mailAddress = Application.WorksheetFunction. _
VLookup(Cws.Cells(Rnum, 1).Value, _
Worksheets("Mailinfo").Range("A1:B" & _
Worksheets("Mailinfo").Rows.Count), 2, False)
On Error GoTo 0

If mailAddress <> "" Then
With Ash.AutoFilter.Range
On Error Resume Next
Set rng = .SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With

Set OutMail = OutApp.CreateItem(0)

On Error Resume Next

With OutMail
.to = mailAddress
.Subject = "Test mail"
.HTMLBody = StrBody & RangetoHTML(rng)
.Display 'Or use Send

StrBody = Sheets("Sheet2").Range("A1").Value & "<br>" & "<br>" & _
Sheets("Sheet2").Range("A2").Value & "<br>" & "<br>" & _
Sheets("Sheet2").Range("A3").Value & "<br><br><br>"

End With
On Error GoTo 0

Set OutMail = Nothing
End If

'Close AutoFilter
Ash.AutoFilterMode = False

Next Rnum
End If
cleanup:
Set OutApp = Nothing
Application.DisplayAlerts = False
Cws.Delete
Application.DisplayAlerts = True

With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

最佳答案

应该

         With OutMail
.to = mailAddress
.cc = "email address"
.Bcc ="email address"

如果您想添加多封电子邮件,则

.cc = "电子邮件地址;电子邮件地址"

MailItem.CC property (Outlook)

返回一个字符串,表示抄送 (CC) 名称的显示列表。

关于excel - 如何在 VBA 宏代码中嵌入 CC 和 BCC,同时将行集发送给唯一的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42802828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com