Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 处理所有打开的电子邮件并移动到文件夹_Vba_Outlook 2007 - Fatal编程技术网

Vba 处理所有打开的电子邮件并移动到文件夹

Vba 处理所有打开的电子邮件并移动到文件夹,vba,outlook-2007,Vba,Outlook 2007,我们公司正在使用企业保险库系统来存储存档的电子邮件。10%的时间我能够检索我的电子邮件。所以我决定把它们储存在我的电脑上 下面是我要做的: 计数x“存档”文件夹中的电子邮件数 在“存档”文件夹中打开n个电子邮件项目 复制电子邮件项目 将n个电子邮件项目移动到“计算机”文件夹(注意:电子邮件必须打开并移动 关闭电子邮件窗口 重复,直到n=x 我的计算机上有一个.pst文件夹 有人能帮我开发最简单的代码来完成第2步吗 这就是我目前所拥有的 Sub MoveToFolder() Dim olApp

我们公司正在使用企业保险库系统来存储存档的电子邮件。10%的时间我能够检索我的电子邮件。所以我决定把它们储存在我的电脑上

下面是我要做的:

  • 计数x“存档”文件夹中的电子邮件数
  • 在“存档”文件夹中打开n个电子邮件项目
  • 复制电子邮件项目
  • 将n个电子邮件项目移动到“计算机”文件夹(注意:电子邮件必须打开并移动
  • 关闭电子邮件窗口
  • 重复,直到n=x
  • 我的计算机上有一个.pst文件夹

    有人能帮我开发最简单的代码来完成第2步吗

    这就是我目前所拥有的

    Sub MoveToFolder()
    
    Dim olApp As New Outlook.Application
    Dim olNameSpace As Outlook.NameSpace
    Dim olArcFolder As Outlook.MAPIFolder
    Dim olCompFolder As Outlook.MAPIFolder
    Dim mailboxNameString As String
    Dim myInspectors As Outlook.MailItem
    Dim myCopiedInspectors As Outlook.MailItem
    Dim x As Integer
    Dim iCount As Integer
    
    mailboxNameString = "Emails Stored on Computer"
    Set olNameSpace = olApp.GetNamespace("MAPI")
    Set olArcFolder = olNameSpace.Folders(mailboxNameString).Folders("Archived")
    Set olCompFolder = olNameSpace.Folders(mailboxNameString).Folders("Computer")
    
    'Make some kind of loop that counts the emails in the folder "Computer"
    'opens it up, and then moves it to the folder "Archived"
    Set myInspectors = Outlook.Application.ActiveInspector.CurrentItem
    Set myCopiedInspectors = myInspectors.copy
    myCopiedInspectors.Move (olCompFolder)
    'next email
    

    伙计们,我想我毕竟是在自学。这是我想要的

    Sub MoveToFolder()
    
    Dim olApp As New Outlook.Application
    Dim olNameSpace As Outlook.NameSpace
    Dim olArcFolder As Outlook.MAPIFolder
    Dim olCompFolder As Outlook.MAPIFolder
    Dim mailboxNameString As String
    Dim myInspectors As Outlook.MailItem
    Dim myCopiedInspectors As Outlook.MailItem
    Dim myItem As Outlook.MailItem
    Dim M As Integer
    Dim iCount As Integer
    
    Set olNameSpace = olApp.GetNamespace("MAPI")
    Set olArcFolder = olNameSpace.Folders("Emails Stored on Computer").Folders("Archived")
    Set olCompFolder = olNameSpace.Folders("Emails Stored on Computer").Folders("Computer")
    
    
    For M = 1 To olArcFolder.items.Count
        Set myItem = olArcFolder.items(M)
        myItem.Display
        Set myInspectors = Outlook.Application.ActiveInspector.CurrentItem
        Set myCopiedInspectors = myInspectors.copy
        myCopiedInspectors.Move olCompFolder
        myInspectors.Close olDiscard
    Next M
    
    
    
    End Sub
    

    在这家伙身上挣扎。我可以复制打开的电子邮件并将其放入文件夹中。但诀窍是为了移动完整的电子邮件,你必须打开它。这将从vault服务器下载它。