不一致的错误1004

我有下面的代码。 简而言之 – 我有两个文件的阅读器和数据。 我需要多个用户才能访问这些文件,但它们存储在一个Box帐户,所以每个用户的文件目录是不同的。 我已经创build了应该这样做的代码。 当我使用F8手动完成代码,甚至在打开工作簿后按F5时,它可以完美运行。 不过,我需要这个打开工作簿上运行。 当我打开它,我得到以下错误:

运行时错误“1004”:应用程序定义或对象定义的错误。

这发生在

Set directoryRange = ImSapMacroWorkbook.Worksheets("Users").Range(Cells(1, 2), Cells(lastUser, 2)) 

我不知道为什么会发生在这一点上,但这并不一致,所以我一直无法确定为什么发生这种情况。 如果有问题,这是auto_open子文件中的第一个子运行。 在运行之前,甚至没有variables被声明。

 Sub GrabData() Dim DataWorkbook As Workbook Dim ImSapMacroWorkbook As Workbook Dim copyRange As Range Dim pasteRange As Range Dim directoryRange As Range Dim LastRow As Integer Dim lastUser As Integer lastUser = ThisWorkbook.Worksheets("Users").Range("A1048576").End(xlUp).Row Set directoryRange = ThisWorkbook.Worksheets("Users").Range(Cells(1, 2), Cells(lastUser, 2)) Set MacroWorkbook = ThisWorkbook On Error GoTo nextUser For Each c In directoryRange Set DataWorkbook = Workbooks.Open(c.Value) Exit For nextUser: Next c LastRow = DataWorkbook.Worksheets("Sheet1").Range("A1048576").End(xlUp).Row Set copyRange = DataWorkbook.Worksheets("Sheet1").Range(Cells(2, 1), Cells(LastRow, 36)) Set pasteRange = MacroWorkbook.Sheets("input").Cells(2, 1) Call clearData copyRange.Copy MacroWorkbook.Activate pasteRange.Select ActiveSheet.Paste End Sub 

我想我发现了这个问题 – 我跑了

  DataWorkbook.Worksheets("Sheet1").activate 

在给我问题的部分前面。 似乎已经修好它 – 将等待几个运行确认,因为它反正是不一致的。