【发布时间】:2016-12-08 00:46:05
【问题描述】:
我正在尝试编写一段代码,该代码从活动资源管理器中获取用户选择的项目列表(通常是邮件项目),对它们执行一些操作(例如设置自定义字段的值),然后 - 当完成 - 在资源管理器窗口中选择下一项并在此处结束执行。
- 识别选定的项目列表没有问题
- 循环浏览选定的项目并对每个项目执行所需的操作没有问题
- 但是,在我的一生中,我无法弄清楚如何在完成上述过程后以编程方式在资源管理器窗口中选择 next 项(请记住,下一项是 不在用户选择的项目列表中。
示例 ...
- 收件箱有 10 个项目
- 用户选择项目 1、4 和 7
- 代码将项目 1、4 和 7 标识为活动选择
- 代码对项目 1、4 和 7 执行操作
--> 完成后,我希望选择项目#8
这可能吗???
皱纹,以及为什么我不能在最后只使用 SendKeys "{DOWN}" 语句:活动视图按自定义字段分组(...称之为标志, 为了便于参考) - 其中 flag=false 显示在第 1 组的屏幕顶部,flag=true 显示在屏幕底部的第 2 组。这是一种将邮件项归类为某种“地下室”的方法,无需删除它们或将它们移动到其他文件夹。它们留在收件箱中,但被单独分组,看不见。
对项目 1、4 和 7 执行的操作包括将标志设置为 TRUE,从而导致项目从屏幕上部消失,并移动到屏幕下部(即在组 # 2)。这一切都很好。
...直到代码到达选择中的最后一项,并再次执行它需要做的事情,然后结束...但是此时显示在资源管理器窗口中的活动/选定邮件项是相同的最后一个邮件项目(#7)。因此,用户现在在组 #2 的收件箱中看到了一个 mailitem。换句话说,用户现在在收件箱的地下室,而不是在顶部,因为 Outlook 正在显示选择中的最后一个邮件项,它已被代码移动到地下室。
我希望代码将活动/选定的邮件项更改为 #8(我设置的自定义字段的值仍然为 FALSE),以便在完成代码执行后,屏幕位置保持在原来的位置代码执行的时间。
我唯一能做的就是在最后应用一个 SendKeys "{HOME}",所以至少用户的视图继续显示组 #1 中的邮件项......但不是正确的邮件项。
我真的被难住了。
任何帮助将不胜感激。
NB> 我的思考过程是,在启动代码时,识别选择中的最后一个邮件项(...通过索引 # 或通过 EntryID) - 我可以很容易地做到这一点 - 但后来以某种方式找到一种方法 i) 找到紧随其后的 NEXT 邮件项,并存储此引用,然后 ii) 在完成代码后,让 Outlook 选择具有我保存的引用 ID 的邮件项。我不知道该怎么做。
谢谢
【问题讨论】: