Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim Folder As Outlook.MAPIFolder
Set Ns = Application.GetNamespace("MAPI")
Set Folder = Ns.GetDefaultFolder(olFolderInbox)
Set Items = Folder.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
Printattachments Item
End If
End Sub
我制定了规则,因此Outlook会自动打印任何带附件的传入电子邮件,但少数同事的电子邮件除外。
如果我停止规则,宏将不会自行运行(假设它应该,代码错误?)但是如果启用规则,则每个带附件的电子邮件将被打印两次。
每页一页,一页只有第一页。有什么方法可以解决这个问题吗?请提前协助并表示感谢!
答案 0 :(得分:3)
使用 Items.Restrict Method (Outlook) 排除发件人姓名。通过 Filtering Items
实施例
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #35B1C2;
min-height: 50px;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li :hover {
background-color: #2F9EBD;
height: 60px;
transition: all 1s;
}
ul:hover {
overflow: visible;
}
li {
border-right: 1px solid #bbb;
transition: all 1s;
}
li:last-child {
border-right: none;
}
</style>
</head>
<body>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="aboutme.html">About Me</a></li>
<li><a href="projects.html">Projects</a></li>
</ul>
</body>
</html>
确保使用正确的名称更新Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Dim Filter As String
Filter = "@SQL=" & " Not (urn:schemas:httpmail:fromname" & _
" Like '%Ming Lian%' Or " & _
"urn:schemas:httpmail:fromname" & _
" Like '%0m3r 0mr%')"
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items.Restrict(Filter)
End Sub
,现在您不需要Outlook规则
Items.Restrict method是使用Find方法或FindNext方法迭代集合中特定项目的替代方法。如果存在少量项目,则Find或FindNext方法比过滤更快。如果集合中有大量项目,则Restrict方法会明显加快,特别是如果预计只能找到大集合中的少数项目。
DASL过滤器支持的Filtering Items Using a String Comparison包括等价,前缀,短语和子串匹配。请注意,当您对Subject属性进行过滤时,将忽略诸如“RE:”和“FW:”之类的前缀。 子>