vba - 在阅读窗格中更改为不同的邮件时触发 VBA 代码
问题描述
一旦我阅读了来自特定发件人的新邮件,我想将它们从收件箱移动到子文件夹。
我将 Outlook 设置为在打开邮件后立即将其标记为已读。为了确保我可以阅读邮件,我只想在关闭邮件/更改为其他邮件时移动邮件。(请注意,我正在使用阅读窗格。)
我尝试了该Explorer.SelectionChange
事件,但当我更改为新邮件时它会触发多次。
Private WithEvents expl As Outlook.Explorer
Private Sub Application_Startup()
Set expl = Application.ActiveExplorer()
End Sub
Private Sub expl_SelectionChange()
MsgBox "Selection changed"
End Sub
为什么会触发多次?
如何获得对我正在“关闭”的邮件项目的引用?
解决方案
为什么会触发多次?
我想(我可能是错的),这是因为View
你有。RPO
对于orPreview
模式,没有注意到上述行为。例如,当您有一个Compact
视图时,选择更改会发生两次?第一次选择项目时,第二次显示项目内容时。但就像我说的,我可能是错的......
选择
如果 Outlook 有Application.EnableEvents = False
MS Excel 之类的,那就更容易了。希望这个替代方案有帮助吗?
Option Explicit
Private WithEvents expl As Outlook.Explorer
Dim DisableEvents As Boolean
Private Sub Application_Startup()
Set expl = Application.ActiveExplorer()
End Sub
Private Sub expl_SelectionChange()
If DisableEvents = True Then
DisableEvents = False
Exit Sub
End If
MsgBox "Selection changed"
DisableEvents = True
End Sub
推荐阅读
- python - 如果我们想从不同的目录导入文件,我们可以在 python 中导入文件名一个变量吗?
- java - 为什么我不能访问我在嵌套类中声明的变量?
- javascript - 删除项目时本地存储键编号中断
- google-cloud-platform - 从存储桶还原后无法访问 GCP Cloud SQL MSSQL DB
- javascript - 使用大型 jpeg 时 jsPDF 图像损坏
- actions-on-google - 报告状态时遇到内部错误
- javascript - 使用地图使用 Swiper 渲染多个 Select 组件不起作用 - Material UI React
- pine-script -
如何在某个条件下查找以前的闭包 - python-3.x - django 应用程序仅使用端口 8000
- websphere - 如何将 Cluster Queue Manager 状态从 running 更改为 inactive,以及从 inactive 更改为 running