运行时错误:438使用宏

时间:2015-05-18 12:38:24

标签: excel vba outlook runtime-error

我正在使用代码使用VBA将Outlook电子邮件详细信息提取到Excel中。

运行宏时会抛出错误:

  

运行时错误:438 - 对象不支持此属性或方法

及以下是单击debug时抛出错误的行。

wks.Cells(oRow, 1) = Folder.Items.Item(iRow).SenderName

1 个答案:

答案 0 :(得分:1)

首先,不要使用多点符号,尤其是在循环中。在进入循环之前缓存Items集合。其次,你可能有一个MailItem以外的项目,例如: ReportItem或MeetingItem对象 - 首先检查Class属性。对于MailItem对象,它将是olMail(= 46):

set items = Folder.Items
...
for iRow = 1 to item.Count
  set item = items.Item(iRow)
  if item.Class = 46 Then 'olMail
    wks.Cells(oRow, 1) = item.SenderName
  End If
neext