【发布时间】:2020-05-28 19:01:32
【问题描述】:
我发现了一个与我在这里类似的问题来解决这个问题;
How can I move Mails Items from Outlook Inbox with specific subject to specific folder/sub folder?
第一个模块- 此代码的第一部分 - 我已成功将所有电子邮件数据导出到电子表格。
第二个模块- 我想指示 Excel VBA 根据我在电子表格中输入的数据集将主文件夹中的电子邮件移动到子文件夹(它不会基于电子邮件本身的过滤器/标准,只是其独特的主题标题)。
在 (c) 列中,是电子邮件的主题(所有主题标题都是特定的/唯一的),在 (h) 列中,我已经详细说明了我想要的子文件夹的名称也动了。不幸的是,我在执行我创建的代码时出错了。
我是 Excel VBA 的初学者,没有最好的理解。我根据不同的来源对我的代码有所了解,如果不正确请告诉我,我们将不胜感激
谢谢。
- 我尝试执行我在用户提出的问题中找到的与我类似的代码,但它没有工作
Sub MovingEmails_Invoices()
'Declare your Variables
Dim items As Outlook.items
Dim subfolder As Outlook.Folder 'this will be the folder you want to move the Mail to
'Set Outlook Inbox Reference
Set OP = New Outlook.Application
Set NS = OP.GetNamespace("MAPI")
Set Mail = OP.CreateItem(olMailItem)
'To loop through subfolder and its folders
Set rootfol = NS.Folders("SYNTHES-JNJCZ-GBS.DE.AT.CH@ITS.JNJ.com")
Set Folder = rootfol.Folders("Austria")
'The list for invoice number should be dynamic
Dim arraysearch(1 To 1000) As String
Dim i As Long
i = UBound(arraysearch)
arraysearch(i) = Range("C2").offset(i, 0).Value
If i = 0 Then
MsgBox "error"
Exit Sub
End If
'The list for folder type should be dynamic
Dim arraymove(1 To 1000) As String
i = UBound(arraymove)
arraymove(i) = Range("H2").offset(i, 0).Value
If i = 0 Then
MsgBox "error"
Exit Sub
End If
'specific folders for the mail to move to
Set subfolder = rootfol.Folders(arraymove(i))
For Each Mail In Folder.items.Restrict("[Subject] >= arraysearch(i)")
If arraysearch(i) = arraymove(i) Then
item.Move subfolder
End If
Next Mail
End Sub
【问题讨论】:
-
光标在代码中,F8直到出现错误。编辑问题以识别该行。
-
哦,对了,它停在 ;设置 item = items.Find(FilterText)
-
相关信息应编辑到问题中。
-
好的,谢谢!
-
您今天添加的新代码没有任何意义。您创建一个具有 1000 个维度的数组,然后您只在这一千个维度上分配一个值。很难说你期望这会做什么。我认为您缺少迭代器“i”的循环。