在for循环的第二次迭代中发生对象变量或具有块变量未设置错误

时间:2017-01-29 16:44:26

标签: vba excel-vba outlook-vba excel

我在Outlook中使用以下代码从电子邮件列表中下载附件。

代码在循环的第一次迭代中工作正常,但在第二次迭代时,它在尝试将文件保存到桌面上的临时文件夹的步骤({1}}处错误{(1}} Run-time error '91' Object variable or With block variable not set)。

通过阅读文档here和一些测试,似乎问题实际上是由wb.SaveAs FileFormat:=51, FileName:=xlNameAndPath在循环的第一次迭代中引起的,这会将wb.close设置为空,然后在第二次迭代中导致错误。

如果我正确,那么我的问题是如何"重新指定对象变量的引用"?

wb

1 个答案:

答案 0 :(得分:3)

我相信

Dim wb As Workbook
Set wb = xlApp.Workbooks.Open(strFolderpath & xlNameTemp)
根据{{​​3}},

将完成这项工作。 (未测试-YMMV!)