Şu anda, müşterilere gönderilecek patlama e-postaları oluşturmaya çalışıyorum ve sütun listesinde bazı yinelenen e-posta adresleri var. Her bir e-posta adresine yalnızca bir e-posta göndermek istiyorum, ancak makronumu çalıştırdığımda, sütunda daha önce/sonraki bir adresin tekrar edilmesine bakılmaksızın, sütundaki her hücre için bir e-posta oluşturur. Benim kod snippet'idir aşağıdaki gibidir:Excel'de yalnızca bir sütundan benzersiz adresler için e-postaları nasıl oluşturabilirim?
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set sh = Sheets("TestSheet")
Set OutApp = CreateObject("Outlook.Application")
For Each cell In sh.Columns("D").Cells.SpecialCells(xlCellTypeConstants)
Set rng = sh.Cells(cell.Row, 1).Range("E1:Z1")
If cell.Value Like "?*@?*.?*" And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItem(0)
Set Entity = cell.Offset(0, -3)
Set Quarter = cell.Offset(0, -2)
Set Year = cell.Offset(0, -1)
Set CCRecip = cell.Offset(0, 1)
strbody = "<font face = 'Calibri'><b>Hello All--</b>" & ...
signature = "<br>Thank you,<br>" & ...
.To = cell.Value
.CC = CCRecip.Value
.Subject = Entity.Value
.HTMLBody = strbody & signature
.display
End With
Set OutMail = Nothing
End If
Next cell
mağaza bir koleksiyon e-posta adresleri içerir ve bir e-posta oluşturmadan önce orada olup olmadığını görmek için bir koleksiyon kontrol edin. Öyleyse, atla. – OpiesDad
Kullandığım dosya bir sistem raporundan oluşturuluyor ve her zaman değişiyor. Faturalı Faturalarla ilgili olduğundan, bir müşteri bu e-tabloda birden fazla satıra sahip olabilir. 3000'den fazla satırlık kayıt var ve her çalıştırıldığında birden fazla yeni e-posta adresi eklenebilir (diğerlerinin yanı sıra kaldırılabilir). Yani bir adres koleksiyonu oluşturmak ve sürdürmek de sıkıcı olabilir. – SamHink123
Bunu sürdürmüyorsun. Kodda bir "Collection" nesnesi kullanıyorsunuz. Bir cevap ekleyeceğim. – OpiesDad