Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将MailItem移动到指定文件夹_Vba_Outlook - Fatal编程技术网

Vba 将MailItem移动到指定文件夹

Vba 将MailItem移动到指定文件夹,vba,outlook,Vba,Outlook,有人能帮我用VBA实现这个小脚本吗 附加的是循环随机停止,我无法移动“archivio”文件夹中的所有邮件 根据问题下的评论,新的循环可能看起来像这个(未测试) (我刚刚用i更改了x!)有错误吗??如果是,哪个号码?没有错误。循环刚刚结束它移动了什么吗??任何单个项目??它只移动一些邮件,通常不超过4封。当您移动(或删除项目)时,您的循环应该从最后一个元素开始,并向第一个元素移动。。。因此,您需要将循环更改为如下内容:For i=specCartella.Items.Count到1步骤-1。。。

有人能帮我用VBA实现这个小脚本吗

附加的是循环随机停止,我无法移动“archivio”文件夹中的所有邮件


根据问题下的评论,新的循环可能看起来像这个(未测试)


(我刚刚用i更改了x!)

有错误吗??如果是,哪个号码?没有错误。循环刚刚结束它移动了什么吗??任何单个项目??它只移动一些邮件,通常不超过4封。当您移动(或删除项目)时,您的循环应该从最后一个元素开始,并向第一个元素移动。。。因此,您需要将循环更改为如下内容:
For i=specCartella.Items.Count到1步骤-1
。。。你能自己进一步弄清楚吗??
Private Sub aggiorna_click()

    Dim x As Object
    Dim ns As Outlook.NameSpace
    Dim itm, sgsa, actionPlan, cartella, specCartella As Object
    Dim olDestFolder As Outlook.MAPIFolder

    Set ns = GetNamespace("MAPI")
    Set itm = ns.GetDefaultFolder(olFolderInbox)
    Set sgsa = itm.Folders("SGSA")
    Set actionPlan = sgsa.Folders("action plan")
    Set cartella = actionPlan.Folders(tipo.Text)
    Set specCartella = cartella.Folders(piano.Text)

Set olDestFolder = itm.Folders("archivio")
For Each x In specCartella.Items
    x.Move olDestFolder
Next x

End Sub
Dim i As Long
For i = specCartella.Items.Count to 1 Step -1
    specCartella.Items(i).Move olDestFolder
Next i