gpt4 book ai didi

VBA:使用类别限制方法的替代方法?

转载 作者:行者123 更新时间:2023-12-01 15:02:03 25 4
gpt4 key购买 nike

我的公司刚刚从 outlook 2003 迁移到 2010。我们有一个带有紫色标记消息的按钮和另一个使用标记过滤器将带有紫色标记的消息发送到服务器数据库的按钮。 [标志状态] = 2由于 outlook 2010 不再使用标志颜色,我将代码更改为使用类别,我成功地创建了一个带有紫色的新类别“readyToSend”。问题是我无法使用这个新类别过滤所有电子邮件。微软似乎自相矛盾,我的代码不起作用。我正在寻找替代方案。

来自 Items.Restrict Method (Outlook)

This method cannot be used and will cause an error with the following properties: Categories

我明白了,但是如果您向下滚动到示例,您会得到:

"This Visual Basic for Applications (VBA) example uses the Restrict method to get all Inbox items of Business category and moves them to the Business folder. To run this example, create or make sure a subfolder called 'Business' exists under Inbox. "

Sub MoveItems()  
Dim myNamespace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myRestrictItems As Outlook.Items
Dim myItem As Outlook.MailItem

Set myNamespace = Application.GetNamespace("MAPI")
Set myFolder = _
myNamespace.GetDefaultFolder(olFolderInbox)
Set myItems = myFolder.Items
Set myRestrictItems = myItems.Restrict("[Categories] = 'Business'")
For i = myRestrictItems.Count To 1 Step -1
myRestrictItems(i).Move myFolder.Folders("Business")
Next
End Sub

我无法让这段代码工作。解决方案 1:如果我能让它工作,我就能解决我的问题。解决方案2:寻找另一种方法将消息标记为传输/已传输而不是类别

感谢您的帮助,如果需要会发布代码

最佳答案

如果过滤器不起作用,我会反过来做:

  • 选择所有项目(而不是已经过滤的)
  • 检查每个项目是否有您要查找的类别

这看起来像这样:

Set myItems = myFolder.Items  
''=> this we leave away''Set myRestrictItems = myItems.Restrict("[Categories] = 'Business'")
For i = myItems.Count To 1 Step -1
if instr(myItems(i).Categories, "readyToSend") <> 0 then myItems(i).Move myFolder.Folders("Business")
Next

它可能需要更长的时间来运行,但差异应该不会太差。我希望这有帮助,最大

关于VBA:使用类别限制方法的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26003684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com