Outlook VBA 中需要对象错误

2024-03-16

我收到此“需要对象”错误。请参阅下面的代码。我不明白为什么我会得到它。 oitem 变量被声明为对象,并且在尝试移动它之前我对类型“MailItem”进行了测试。请指教。

Alan

Public StatsArchiveFolder As Outlook.Folder
'StatsArchiveFolder is set to equal an Outlook.Folder elsewhere
_____________________________________

Sub MoveHarpStatMail()

Dim olapp As Outlook.Application
Dim olappns As Outlook.NameSpace
Dim oitem As Object
Dim ItemsToProcess As Outlook.Items
Dim myFolder As MAPIFolder
Dim sFilter As String
Dim tempMailItem As Outlook.MailItem

On Error GoTo LocalErr

'set outlook objects

Set olapp = New Outlook.Application
Set olappns = olapp.GetNamespace("MAPI")
Set myFolder = olappns.GetDefaultFolder(olFolderInbox)
'Filter or only MailItems received today
sFilter = "[ReceivedTime] >= " & AddQuotes(Format(Date, "ddddd"))
Set ItemsToProcess = Session.GetDefaultFolder(olFolderInbox).Items.Restrict(sFilter)

For Each oitem In ItemsToProcess
 If TypeName(oitem) = "MailItem" Then
   Set tempMailItem = oitem
   If CheckSubject(tempMailItem.Subject) Then
     MoveToArchiveFolder (tempMailItem) '<<<Error 424 Object Required ???
   End If
 End If
Next oitem

ExitProc:
Set olapp = Nothing
Set olappns = Nothing
Set myFolder = Nothing
Set ItemsToProcess = Nothing

...
End Sub

_________________________________

Function CheckSubject(Subject As String) As Boolean

   If (LCase(Trim(Subject)) = LCase(SubjectTitle)) Then
     CheckSubject = True
   Else
     CheckSubject = False
   End If

 End Function

______________________________

Sub MoveToArchiveFolder(Item As Outlook.MailItem)

  If (ArchiveFolder = Nothing) Then
    MsgBox ("The ArchiveFolder object is not set.")
  End If

  Item.Move (StatsArchiveFolder)

End Sub

去掉括号:

MoveToArchiveFolder tempMailItem

基本上括号里说的是评估tempMailItem。 a 的默认属性MailItem是电子邮件的主题,因此您的代码通过了tempMailItem取决于你的功能,而不是MailItem itself.

这里有一个有趣的每日剂量 http://www.dailydoseofexcel.com/archives/2012/05/01/quick-vba-tip-parentheses/发帖说明原因。请务必阅读 Rick Rothstein 的评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Outlook VBA 中需要对象错误 的相关文章

  • 根据每日价格时间序列计算每周收益

    我想根据每日价格的时间序列计算共同基金的每周回报 我的数据如下所示 A B C D E DATE WEEK W DAY MF PRICE WEEKLY RETURN 02 01 12 1 1 2 7587 03 01 12 1 2 2 76
  • 基于另一个选择列表动态更新选择列表

    我想根据另一个中的用户选择填充下拉列表 在网上找不到任何与之相关的内容 我有一本名为查找部门包含下表 A B BS Business School CG Chemical Engineering where column A有定义的名称de
  • 使用 MS Access 在 Excel VBA 中运行代码

    我使用访问前端从 SQL Server 中提取查询 然后 我将记录集导出到新的 Excel 工作簿 然后我想使用 Excel 运行 Access 中的代码 它只是循环遍历单元格并添加格式并检查特定值 我可以从访问权限运行它 它将让工作簿打开
  • WorksheetFunction 数组大小限制

    我正在尝试使用以下百分位数函数计算 VBA 内数组 arr1 中包含 100000 个值的数据集的 99 5 百分位数 Pctile Application WorksheetFunction Percentile arr1 0 995 P
  • 如何从示例中给出的某些输入自动生成某些 Excel 字符串?

    基本上我想要在Excel中执行以下操作 如果我在表 1 中输入以下内容 我需要它 A B C 1 Name Size Color 2 Shirt S M L Red Green 3 Trouser 32 34 White Black Gre
  • 每当我打开文档时,VBA 代码就会停止

    首先 很抱歉发布此内容 我知道它可能是重复的this https stackoverflow com questions 51625995 vba code stops after documents open帖子 我试图将其作为编辑发布
  • 如何使用 Excel VBA 根据货币标准格式化列中的数字?

    我想格式化一列的所有单元格 数据是一个数字 我想从左边添加一个小数 之后只保留两位数 然后根据货币标准对其进行格式化 例如 Data Output 10000 100 00 112233 1 122 33 123456789 1 234 5
  • 如何修复在 Excel VBA 中使用查找函数的错误

    我尝试从另一张表中搜索值 而不是使用 FIND 函数 Private Function Search rng As Range FindString As String As Range With rng Set Search Find w
  • 如何使用 xlwings 从 Python 调用 Excel 宏?

    我读过API docs http docs xlwings org api html对于 xlwings 并在解释器中使用 Workbook 和 Sheet 对象 但我不知道如何从 Python 调用宏 如何使用 xlwings 从 Pyt
  • VBA Excel 大数据操作需要很长时间

    我有两个Excel文件 第一个 Excel 文件包含 人员姓名 和 出席总天数 列 前任 PersonName TotalDays xyz abcd 另一个 Excel 文件包含人员姓名 日期和状态 出席 缺席 PersonName Dat
  • 使用用户定义函数的 VBA 数据验证

    我有一个用户定义的函数 我想在自定义数据验证中使用它 我的函数工作正常 但是当我在数据验证中使用它时 每次都会出错 有代码 Public Function AlphaNumeric pValue As Boolean Dim LPos As
  • VBA中如何四舍五入到小数点后两位?

    在单元格 B2 中 在进行计算之前 我的变量值为 297 123 在 VBA 中 我想将其四舍五入为 297 12 请参阅下面的代码了解我的尝试 两者都将燃油评估为 297 我做错了什么 Dim fuel As Integer Dim li
  • =MATCH() 等价于多维范围

    我有一个 Excel 工作表 其中单元格 A1 C20 INT RAND 10 这是我的数据范围 单元格 E1 1 E2 2 E3 3 等 这些是我试图找到的值 我设置单元格 F1 MATCH E1 A C 0 F2 MATCH E1 A
  • 将最后几个功能添加到我的调度模板生成器中

    感谢 StackOverflow 上的一些出色的人 我几乎完成了调度模板生成器的代码 我还想补充三件事 但我遇到了一些麻烦 当前细分 我有两张表 2 员工列表 和 X 模板 员工列表中的值是从单元格 D9 开始的一列员工姓名 然后将员工值转
  • 文本到行 VBA Excel

    我有一个电子表格 其中包含大约 4000 行数据 其中一列数据具有唯一的订单号 我希望使用 作为分隔符将其分隔 所以本质上我想要 Name Order Date Jane 123 001 111 08 15 2013 Gary 333 12
  • 无法在我的抓取工具中设置超时选项以防止无限循环

    我已经使用 IE 在 vba 中编写了一个脚本 在其搜索框中的网页中启动搜索 通过点击搜索按钮根据搜索填充结果 网页加载它是searchbox几秒钟后它就会打开 但是 我的下面的脚本可以处理这个障碍并以正确的方式执行搜索 现在 我有一个稍微
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 标志状态的 VBA 替换

    根据文档 Outlook 中的 MailItem FlagStatus 属性是已弃用 https msdn microsoft com en us library microsoft office interop outlook maili

随机推荐