Arrays 尝试在vba/sql中保存附件时出现数组越界错误

Arrays 尝试在vba/sql中保存附件时出现数组越界错误,arrays,vba,outlook,Arrays,Vba,Outlook,我设法得到了保存附件的代码,但现在我对它设置了一些条件,我不断得到数组越界错误。我确实有附件。项目为(x),但我的同事建议这不起作用。我想我还是问问专家吧 当我在调试模式下运行它时,附件项(x)从1直接变为820 以下是我的代码片段: 对于i=1的电子邮件计数 带有ObjParentFolder.Items(i) 接下来,我将删除循环中的附件,从而更改总计数。使用向下循环: For p = .Attachments.Count to 1 step -1 避免使用多点表示法也是一个好主意。在进入

我设法得到了保存附件的代码,但现在我对它设置了一些条件,我不断得到数组越界错误。我确实有附件。项目为(x),但我的同事建议这不起作用。我想我还是问问专家吧

当我在调试模式下运行它时,附件项(x)从1直接变为820

以下是我的代码片段:

对于i=1的电子邮件计数 带有ObjParentFolder.Items(i)


接下来,我将删除循环中的附件,从而更改总计数。使用向下循环:

For p = .Attachments.Count to 1 step -1
避免使用多点表示法也是一个好主意。在进入循环之前缓存attachments集合,并仅检索一次附件

模糊附件 暗恋 设置附件=.attachments 如果附件数>0,则

       For p = .Attachments.Count to 1 step -1
           set attach = attachments.Item(p)
           Select Case Right(attach.Filename, 4)
               Case ".xls"
                   attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
              Case ".zip"
                    attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
                Case ".doc"
                    attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
                Case Else
                    attach.Delete
           End Select
       Next p
    End If
       For p = .Attachments.Count to 1 step -1
           set attach = attachments.Item(p)
           Select Case Right(attach.Filename, 4)
               Case ".xls"
                   attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
              Case ".zip"
                    attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
                Case ".doc"
                    attach.SaveAsFile (ThisWorkbook.Path & "\attachments" & "_" & TmpID & "_" & attach.Filename)
                Case Else
                    attach.Delete
           End Select
       Next p
    End If