【发布时间】:2019-10-08 14:25:26
【问题描述】:
我有一个宏可以将共享邮箱中的所有电子邮件都输入到 Excel 中 在我的共享收件箱中,我创建了 2 个新字段,我们在其中输入了与收到的电子邮件相关的一些信息。我将它们命名为 Client 和 Oper。
你能帮我提个建议吗?如何查看字段属性以便在 VBA 中获取它?
宏如下所示:
Option Explicit
Sub getDataFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim objOwner As Outlook.Recipient
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set objOwner = OutlookNamespace.CreateRecipient("Sharedmailbox@companyname.com")
objOwner.Resolve
If objOwner.Resolved Then
Set Folder = OutlookNamespace.GetSharedDefaultFolder(objOwner, olFolderInbox)
End If
i = 1
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= Range("email_receipt_date").Value Then
Range("email_sender").Offset(i, 0) = OutlookMail.SenderName
Range("email_sender").Offset(i, 0).Columns.AutoFit
Range("email_sender").Offset(i, 0).VerticalAlignment = xlTop
Range("email_subject").Offset(i, 0) = OutlookMail.Subject
Range("email_subject").Offset(i, 0).Columns.AutoFit
Range("email_subject").Offset(i, 0).VerticalAlignment = xlTop
'Range("email_client").Offset(i, 0) = OutlookMail.Client
'Range("email_client").Offset(i, 0).Columns.AutoFit
'Range("email_client").Offset(i, 0).VerticalAlignment = xlTop
'Range("email_oper").Offset(i, 0) = OutlookMail.Oper
'Range("email_oper").Offset(i, 0).Columns.AutoFit
'Range("email_oper").Offset(i, 0).VerticalAlignment = xlTop
Range("email_date").Offset(i, 0) = OutlookMail.ReceivedTime
Range("email_date").Offset(i, 0).Columns.AutoFit
Range("email_date").Offset(i, 0).VerticalAlignment = xlTop
Range("email_categories").Offset(i, 0) = OutlookMail.Categories
Range("email_categories").Offset(i, 0).Columns.AutoFit
Range("email_categories").Offset(i, 0).VerticalAlignment = xlTop
Range("email_flag_status").Offset(i, 0) = OutlookMail.FlagStatus
Range("email_flag_status").Offset(i, 0).Columns.AutoFit
Range("email_flag_status").Offset(i, 0).VerticalAlignment = xlTop
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
【问题讨论】:
-
也许是 OutlookMail.UserProperties("FieldName") .Value?有几种不同的方法可以实现新字段。有些是计算视图列,有些是表单。这些新领域在哪里?
-
在共享邮箱中添加了这些列,方法是按照以下菜单创建它们:查看选项卡->查看设置->列->新列。列的类型是文本
-
那么是的,我发布的内容将起作用。进一步的研究表明该字段未填充时会出现问题,因此建议在尝试复制之前使用 Find 方法确保填充该值,否则将引发错误。有关更多详细信息,请参阅此答案。如果您需要更多帮助,我可以模拟一个示例。 stackoverflow.com/questions/8551655/…