2012-04-06 38 views
6

Tôi đang xây dựng một bổ trợ Excel gửi sổ làm việc hoạt động dưới dạng tệp đính kèm trong mẫu email Outlook đến một Nhóm Liên hệ cụ thể.Cách truy cập các nhóm liên lạc trong Excel VBA?

Tôi đã nhận hai phần đầu tiên để làm việc với mã bên dưới, nhưng tôi không chắc chắn cách đặt trường .TO thành nhóm liên hệ.

Public Sub Mail_Reports() 
    Dim rng As Range 
    Dim OutApp As Object 
    Dim OutMail As Object 

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

    On Error Resume Next 

    Set OutApp = CreateObject("Outlook.Application") 

    'Set this line to the path and file name of your template 
    Set OutMail = OutApp.CreateItemFromTemplate("C:\Users\moses\AppData\Roaming\Microsoft\Templates\test.oft") 
    On Error Resume Next 

    With OutMail 
     '.TO field should be set to the contact group 
     .BCC = "" 
     .Attachments.Add ActiveWorkbook.FullName 
     .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod) 
     .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod) 
     'To display the email leave as is; to send the Email, change to .Send 
     .Display 'or Send 
    End With 

    On Error GoTo 0 

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

    Set OutMail = Nothing 
    Set OutApp = Nothing 
End Sub 

Trả lời

3

Chỉ cần sử dụng tên của nhóm liên hệ (trước đây gọi là "danh sách phân phối"). Tôi vừa thử nó, như được đề xuất trên trang web Ron de Bruin's và nó hoạt động.

+0

Bỏ qua điều đó, nó hoạt động. Sự nhầm lẫn của tôi là mặc dù nó đã điền vào trường dưới dạng giá trị thô, Outlook đủ thông minh để nhận ra nó là một nhóm liên lạc. Tôi đã có câu trả lời tất cả cùng nhưng không biết nó XD. – Moses

+0

Tôi cũng nhận thấy rằng nó không xuất hiện để giải quyết và nên đã đề cập đến nó trong câu trả lời của tôi. Nếu bạn nhấn Check Name, và khi chúng tôi phát hiện ra, ngay cả khi bạn không gửi tiền phạt. –

+1

Này, tôi biết, nhưng liên kết đó đã bị hỏng - bạn có thể đặt một đoạn câu trả lời có liên quan của Ron ở đây không - giả sử bạn vẫn có nó? – Huw

0

Để địa chỉ email hoặc tên người nhận được giải quyết (để chúng không hiển thị văn bản thuần túy), bạn có thể thực hiện các thao tác sau.

With OutMail 
    '.TO field should be set to the contact group 
    .BCC = "" 
    .Attachments.Add ActiveWorkbook.FullName 
    .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod) 
    .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod) 
    'To display the email leave as is; to send the Email, change to .Send 
    .Display 'or Send 
    If Not .Recipients.ResolveAll Then 
     For Each Recipient In .Recipients 
      If Not Recipient.Resolved Then 
       MsgBox Recipient.Name & " could not be resolved" 
      End If 
     Next 
    End If 
End With 
Các vấn đề liên quan