2015-03-03 20 views
6

Mã dưới đây (tôi lấy từ một số nguồn) hiện hoạt động khi tôi nhận được email có các từ cụ thể trong dòng tiêu đề, nó kích hoạt tập lệnh chạy bên dưới.Email chuyển tiếp có phần đính kèm trong Outlook 2010

Mã này sau đó giữ dòng tiêu đề, thêm văn bản nội dung thư và chuyển tiếp đến người nhận dự định.

Tuy nhiên, nếu email tôi nhận được có tệp đính kèm, mã không còn chuyển tiếp bất kỳ thứ gì nữa. Tôi cần nó để chuyển tiếp tệp đính kèm đã được gửi qua email cho tôi (chỉ sử dụng mã để thêm văn bản vào nội dung email nếu không tôi sẽ chỉ đặt quy tắc).

mã bên dưới:

Sub ForwardEmail(item As Outlook.MailItem) 
Dim oExplorer As Outlook.Explorer 
Dim oMail As MailItem 
Set oExplorer = Application.ActiveExplorer 

On Error GoTo Release 

If oExplorer.Selection.item(1).Class = olMail Then 
Set oMail = item.Forward 
oMail.Subject = oMail.Subject 
oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
oMail.Recipients.Add "email address here" 


oMail.Save 
oMail.Send 

End If 
Release: 
Set oMail = Nothing 
Set oExplorer = Nothing 
End Sub 
+0

Không la hét gì cả. Tôi không bao gồm một "!". Tôi chỉ thực hiện phần quan trọng tất cả các mũ để hy vọng thu hút một số chú ý đang tìm kiếm câu hỏi để trả lời những người đã xử lý với điều này trước và có thể sẵn sàng hỗ trợ tôi. Chữ viết dễ đọc vào bất cứ cách nào người đọc muốn, nhưng tôi đảm bảo với bạn rằng tôi sẽ biết ơn nhất đối với sự giúp đỡ của bất cứ ai. Tôi rất mới với điều này và sẽ cố gắng chỉnh sửa mũ ra để nó không bị hiểu sai bởi những người khác. Lời xin lỗi của tôi. – nfnf

+0

Đó là một trò đùa. Tất cả các mũ được dịch thành tiếng la hét hầu hết thời gian. Tôi khuyên bạn nên vung vơi "Cách định dạng trong Đánh dấu?" Phần của trung tâm trợ giúp. – RubberDuck

+0

Đã kể với bạn tôi rất mới, tôi thậm chí không biết tôi đã bị rối tung. Tôi là "anh chàng mới" :) – nfnf

Trả lời

5

Không có nhu cầu sử dụng các đối tượng Explorer trong các mã:

Sub ForwardEmail(item As Outlook.MailItem) 
    Dim oMail As MailItem  

    On Error GoTo Release 

    If item.Class = olMail Then 
    Set oMail = item.Forward 
    oMail.Subject = oMail.Subject 
    oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
    oMail.Recipients.Add "email address here" 

    oMail.Save 
    oMail.Send 
    End If 
Release: 
    Set oMail = Nothing 
    Set oExplorer = Nothing 
End Sub 

Bạn có thể tìm thấy bài viết hữu ích Getting Started with VBA in Outlook 2010.

+0

Cảm ơn bạn rất nhiều vì đã lừa tôi. Mã được mã hóa của bạn có thể chuyển tiếp email mà không có tệp đính kèm, nhưng không chuyển tiếp được bằng tệp đính kèm. Bất kỳ tư vấn thêm nào để thử sẽ được đánh giá cao. – nfnf

+0

Dường như Outlook đã chặn tệp đính kèm. Hãy thử gọi mã bên ngoài quy tắc. Bạn có gặp vấn đề tương tự không? –

+0

Macro của tôi không xuất hiện trong hộp "Chạy" dưới dạng tùy chọn. Đây là nỗ lực đầu tiên của tôi khi sử dụng vba trong triển vọng và thử mọi thứ tôi có thể nghĩ đến để chạy nó. Thành thật mà nói, tôi hơi xấu hổ một chút, tôi không thể làm cho nó chạy mà không được bảo vệ bằng cách sử dụng kịch bản. Điều lạ lùng là mã sửa đổi của bạn (nhờ bạn BTW một lần nữa cho điều đó) cho phép email được chuyển tiếp miễn là không có tệp đính kèm, nhưng nó sẽ không chuyển tiếp email nếu nó không có tệp đính kèm (ví dụ: cũng không chuyển tiếp email mà không có tệp đính kèm). – nfnf

2

Có một điều kiện cần thiết

If oExplorer.Selection.item(1).Class = olMail Then 

có thể gây ra sự chuyển tiếp để được bỏ qua.

Sub ForwardEmail(item As Outlook.MailItem) 
' Dim oExplorer As Outlook.Explorer 
Dim oMail As MailItem 
' Set oExplorer = Application.ActiveExplorer 

On Error GoTo Release 

' If oExplorer.Selection.item(1).Class = olMail Then 

Set oMail = item.Forward 
oMail.Subject = oMail.Subject 
oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
oMail.Recipients.Add "email address here" 

' oMail.Save 
oMail.Send 

' End If 

Release: 
Set oMail = Nothing 
' Set oExplorer = Nothing 
End Sub 
+0

Tôi cảm ơn bạn đã dành thời gian để thử và giúp tôi với điều này. Tôi đã xóa dòng mã đó và tiếc là nó vẫn không hoạt động. Bất kỳ ý tưởng nào khác sẽ được đánh giá cao. – nfnf

+0

Mã lỗi là một đầu mối sai. Nếu bạn tìm kiếm một lý do không phải VBA, có nhiều kết quả. http://www.msoutlook.info/question/attachments-disappear-rich-text http://www.computerhope.com/issues/ch000728.htm https://www.novell.com/communities/coolsolutions/mystery- mất tích-e-mail-attachment/http://support.microsoft.com/kb/958012 – niton

Các vấn đề liên quan