2014-12-06 78 views
1

我正在MS Outlook中編寫代碼以處理傳入的郵件。CallByName語法Outlook VBA

我的代碼有一個冗長的條件語句,以確定每個傳入電子郵件所屬的類別。

然後,根據此條件語句的結果,代碼應該讀取MailItem對象的相應屬性。

我想使用CallByName函數來實現這一點。

x = CallByName(itm, PAN_Source, VbGet) 

其中「ITM」是的MailItem對象,「PAN_Source」變量包含字符串,它指的是特定的屬性從「ITM」。

例如,如果收到的郵件有附件,則'PAN_Source'被賦予值「Attachments.Item(1).DisplayName」。我想要CallByName(itm,PAN_Source,VbGet)返回itm.Attachments.Item(1).DisplayName

Outlook VBA只是在此階段執行時停止執行。

你能幫助識別上述代碼中的錯誤嗎?

由於

回答

0

CallByName函數接受下列參數:

  • 將在其上執行的函數的對象的名稱。
  • 一個字符串表達式,其中包含該對象的屬性或方法的名稱。
  • vbCallType類型的常量,表示正在調用的過程的類型。
  • 參數(可選)。

我會嘗試使用替代以下幾點:

Call CallByName("itm", PAN_Source, VbGet)

你可能會發現Getting Started with VBA in Outlook 2010文章很有幫助。

+0

它不起作用。發生類型不匹配錯誤。如果特別要求提供對象,而不是對象的名稱。 – 2014-12-06 15:15:55

+1

對於第二個參數嘗試傳遞一個字符串,它表示一個沒有多個點的簡單對象屬性。例如,傳遞該屬性的名稱。 – 2014-12-06 16:31:43