Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Excel 循环浏览所有Outlook收件箱,包括共享收件箱错误_Excel_Vba_Outlook - Fatal编程技术网

Excel 循环浏览所有Outlook收件箱,包括共享收件箱错误

Excel 循环浏览所有Outlook收件箱,包括共享收件箱错误,excel,vba,outlook,Excel,Vba,Outlook,我有一些代码,可以搜索用户的Outlook并根据您在工作表单元格中输入的主题短语回复电子邮件。几天前我确实让它工作了,但现在我似乎无法让它工作(被删除)。运行后,代码行“Set-olitems=flrd.Items”将持续显示一条错误消息,表示“未设置对象变量或带块变量”。我认为问题在于,如果我把它放在哪里,要么代码什么都不做,要么显示相同的错误,那么就结束了 工作代码唯一的另一个问题(当它工作时)是它填充了不止一次。我希望它只填充一次 Sub Display() Dim Fldr As Ou

我有一些代码,可以搜索用户的Outlook并根据您在工作表单元格中输入的主题短语回复电子邮件。几天前我确实让它工作了,但现在我似乎无法让它工作(被删除)。运行后,代码行“Set-olitems=flrd.Items”将持续显示一条错误消息,表示“未设置对象变量或带块变量”。我认为问题在于,如果我把它放在哪里,要么代码什么都不做,要么显示相同的错误,那么就结束了

工作代码唯一的另一个问题(当它工作时)是它填充了不止一次。我希望它只填充一次

Sub Display()

Dim Fldr As Outlook.Folder
Dim olfolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim olReply As Outlook.MailItem
Dim olItems As Outlook.Items
Dim i As Integer
Dim signature As String
Dim allStores As Stores
Dim storeInbox As Folder
Dim j As Long

Set allStores = Session.Stores

For j = 1 To allStores.count
On Error Resume Next
Debug.Print i & " DisplayName - " & allStores(i).DisplayName
On Error GoTo 0

Set storeInbox = Nothing
On Error Resume Next
Set storeInbox = allStores(i).GetDefaultFolder(olFolderInbox)
On Error GoTo 0

If Not storeInbox Is Nothing Then
End if
     Set olItems = Fldr.Items

olItems.Sort "[Received]", True

For i = 1 To olItems.count
    signature = Environ("appdata") & "\Microsoft\Signatures\"

    If Dir(signature, vbDirectory) <> vbNullString Then
        signature = signature & Dir$(signature & "*.htm")
    Else
        signature = ""
    End If

    signature = CreateObject("Scripting.FileSystemObject").GetFile(signature).OpenAsTextStream(1, -2).ReadAll

    Set olMail = olItems(i)

    If InStr(olMail.Subject, Worksheets("Checklist Form").Range("B8")) <> 0 Then
        If Not olMail.Categories = "Executed" Then
            Set olReply = olMail.ReplyAll

            With olReply
                .HTMLBody = "<p style='font-family:calibri;font-size:14.5'>" & "Hi Everyone," & _
                    "<p style='font-family:calibri;font-size:14.5'>" & "Workflow ID:" & " " & _
                    Worksheets("Checklist Form").Range("B6") & "<p style='font-family:calibri;font-size:14.5'>" & _
                    Worksheets("Checklist Form").Range("B11") & "<p style='font-family:calibri;font-size:14.5'>" & _
                    "Regards," & "</p><br>" & signature & .HTMLBody
                .Display
                .Subject = "RO Finalized WF:" & Worksheets("Checklist Form").Range("B6") & " " & _
                    Worksheets("Checklist Form").Range("B2") & " -" & Worksheets("Fulfillment Checklist").Range("B3")
            End With

            Exit For
            olMail.Categories = "Executed"

        End If
    End If

Next i
 Set Fldr = StoreInbox

Next

ExitRoutine:
Set allStores = Nothing
Set storeInbox = Nothing

End Sub
子显示()
将Fldr设置为Outlook.Folder
将文件夹设置为Outlook.MAPIFolder
以Outlook.MailItem的形式发送邮件
请以Outlook.MailItem的形式答复
将MS设置为Outlook.Items
作为整数的Dim i
作为字符串的数字签名
把所有的商店都当作商店
将收件箱设置为文件夹
Dim j尽可能长
设置allStores=Session.Stores
对于j=1到allStores.count
出错时继续下一步
Debug.Print i&“DisplayName-”&所有存储(i).DisplayName
错误转到0
Set storeInbox=Nothing
出错时继续下一步
Set storeInbox=allStores(i).GetDefaultFolder(olFolderInbox)
错误转到0
如果不是,那么storeInbox什么都不是
如果结束
设置MS=Fldr.项目
.Sort“[Received]”,True
对于i=1到ms计数
签名=环境(“appdata”)和“\Microsoft\Signatures”
如果Dir(签名,vbDirectory)vbNullString,则
签名=签名和目录$(签名和“*.htm”)
其他的
signature=“”
如果结束
signature=CreateObject(“Scripting.FileSystemObject”).GetFile(signature.OpenAsTextStream(1,-2).ReadAll
设置olMail=ms(i)
如果InStr(olMail.Subject,工作表(“检查表”)范围(“B8”)为0,则
如果不是olMail.Categories=“已执行”,则
设置olReply=olMail.replyll
答复
.HTMLBody=“

”和“大家好,”_ “

”和“工作流ID:&”&”_ 工作表(“检查表”)。范围(“B6”)和“

”和_ 工作表(“检查表”)。范围(“B11”)和“

”和_ “问候”&“


”&签名和.HTMLBody .展示 .Subject=“RO定稿WF:”&工作表(“检查表”)。范围(“B6”)和“&”_ 工作表(“检查表”).范围(“B2”)和“-”以及工作表(“履行检查表”).范围(“B3”) 以 退出 olMail.Categories=“已执行” 如果结束 如果结束 接下来我 设置Fldr=StoreInbox 下一个 现存的: 设置所有存储=无 Set storeInbox=Nothing 端接头
首先,清除下一行恢复时出现的
错误。
其次,
Fldr
变量从未设置。您是否打算改用
storeInbox
变量

Sub Display()

Dim Fldr As Outlook.Folder
Dim olfolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim olReply As Outlook.MailItem
Dim olItems As Outlook.Items
Dim i As Integer
Dim signature As String
Dim allStores As Stores
Dim storeInbox As Folder
Dim j As Long

Set allStores = Session.Stores

For j = 1 To allStores.count
On Error Resume Next
Debug.Print i & " DisplayName - " & allStores(i).DisplayName
On Error GoTo 0

Set storeInbox = Nothing
On Error Resume Next
Set storeInbox = allStores(i).GetDefaultFolder(olFolderInbox)
On Error GoTo 0

If Not storeInbox Is Nothing Then

     Set olItems = Fldr.Items

olItems.Sort "[Received]", True

For i = 1 To olItems.count
    signature = Environ("appdata") & "\Microsoft\Signatures\"

    If Dir(signature, vbDirectory) <> vbNullString Then
        signature = signature & Dir$(signature & "*.htm")
    Else
        signature = ""
    End If

    signature = CreateObject("Scripting.FileSystemObject").GetFile(signature).OpenAsTextStream(1, -2).ReadAll

    Set olMail = olItems(i)

    If InStr(olMail.Subject, Worksheets("Checklist Form").Range("B8")) <> 0 Then
        If Not olMail.Categories = "Executed" Then
            Set olReply = olMail.ReplyAll

            With olReply
                .HTMLBody = "<p style='font-family:calibri;font-size:14.5'>" & "Hi Everyone," & _
                    "<p style='font-family:calibri;font-size:14.5'>" & "Workflow ID:" & " " & _
                    Worksheets("Checklist Form").Range("B6") & "<p style='font-family:calibri;font-size:14.5'>" & _
                    Worksheets("Checklist Form").Range("B11") & "<p style='font-family:calibri;font-size:14.5'>" & _
                    "Regards," & "</p><br>" & signature & .HTMLBody
                .Display
                .Subject = "RO Finalized WF:" & Worksheets("Checklist Form").Range("B6") & " " & _
                    Worksheets("Checklist Form").Range("B2") & " -" & Worksheets("Fulfillment Checklist").Range("B3")
            End With

            Exit For
            olMail.Categories = "Executed"

        End If
    End If

Next i

End if

Next

ExitRoutine:
Set allStores = Nothing
Set storeInbox = Nothing

End Sub
子显示()
将Fldr设置为Outlook.Folder
将文件夹设置为Outlook.MAPIFolder
以Outlook.MailItem的形式发送邮件
请以Outlook.MailItem的形式答复
将MS设置为Outlook.Items
作为整数的Dim i
作为字符串的数字签名
把所有的商店都当作商店
将收件箱设置为文件夹
Dim j尽可能长
设置allStores=Session.Stores
对于j=1到allStores.count
出错时继续下一步
Debug.Print i&“DisplayName-”&所有存储(i).DisplayName
错误转到0
Set storeInbox=Nothing
出错时继续下一步
Set storeInbox=allStores(i).GetDefaultFolder(olFolderInbox)
错误转到0
如果不是,那么storeInbox什么都不是
设置MS=Fldr.项目
.Sort“[Received]”,True
对于i=1到ms计数
签名=环境(“appdata”)和“\Microsoft\Signatures”
如果Dir(签名,vbDirectory)vbNullString,则
签名=签名和目录$(签名和“*.htm”)
其他的
signature=“”
如果结束
signature=CreateObject(“Scripting.FileSystemObject”).GetFile(signature.OpenAsTextStream(1,-2).ReadAll
设置olMail=ms(i)
如果InStr(olMail.Subject,工作表(“检查表”)范围(“B8”)为0,则
如果不是olMail.Categories=“已执行”,则
设置olReply=olMail.replyll
答复
.HTMLBody=“

”和“大家好,”_ “

”和“工作流ID:&”&”_ 工作表(“检查表”)。范围(“B6”)和“

”和_ 工作表(“检查表”)。范围(“B11”)和“

”和_ “问候”&“


”&签名和.HTMLBody .展示 .Subject=“RO定稿WF:”&工作表(“检查表”)。范围(“B6”)和“&”_ 工作表(“检查表”).范围(“B2”)和“-”以及工作表(“履行检查表”).范围(“B3”) 以 退出 olMail.Categories=“已执行” 如果结束 如果结束 接下来我 如果结束 下一个 现存的: 设置所有存储=无 Set storeInbox=Nothing 端接头
评论不用于扩展讨论;这段对话已经结束。