2017-03-20 193 views
1

我正在搜索如何通過函數傳遞MailItem。將MailItem傳遞到函數

例如:我想調用一個提取MailItem的Subject的函數。

Function testpassing(myMail As Outlook.MailItem) As Actions 
    MsgBox (myMail.Subject) 
End Function 

Sub passing() 
    Dim myItem As Outlook.MailItem 
    Set myItem = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items(1) 

    MsgBox (myItem.Subject) '<~ Work correctly 
    testpassing (Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items(1)) '<~ Run-time error 438 Object doesn't support this property or method 
    testpassing (myItem)  '<~ Run-time error 438 Object doesn't support this property or method 
End Sub 

新的VBA展望。請幫忙。謝謝:)

+0

請顯示代碼,你叫'testpassing' – Dai

+0

也你的'功能'不實際返回任何東西 - 這也可能是問題的一部分。 – Dai

+0

我將myItem定義爲:Dim myItem As Outlook.MailItem/Set myItem = myNamespace.GetDefaultFolder(olFolderInbox).Items(1) – TuanLaDaPoet

回答

1

叫它testpassing myItemtestpassing Application.GetNamespace("MAPI").GetDefaultFolder(olFolderIn‌​box).Items(1)

也考慮ByRef and ByVal

您可以通過引用或按值傳遞參數給一個過程(函數或子)。

一如既往快樂編碼:-)