我有以下代码。简而言之 - 我有两个文件,一个读者和一个数据。我需要多个用户才能访问这些文件,但它们存储在Box帐户中,因此每个用户的文件目录都不同。我已经创建了应该执行此操作的代码。当我使用 F8 手动遍历代码,或者甚至在工作簿打开后按 F5 时,它运行得很好。但是我需要这个在工作簿上运行。当我打开它时,我收到以下错误:
运行时错误' 1004':应用程序定义或对象定义的错误。
这发生在
Set directoryRange = ImSapMacroWorkbook.Worksheets("Users").Range(Cells(1, 2), Cells(lastUser, 2))
我不知道为什么会在这一点上发生,但它并不一致,所以我无法确定为什么会发生这种情况。如果重要,这是auto_open子中的第一个子运行。在此运行之前甚至没有声明变量。
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
答案 0 :(得分:1)
我想我发现了问题 - 我跑了
DataWorkbook.Worksheets("Sheet1").activate
在给我问题的部分前面。似乎已经修复了它 - 将等待确认几次运行,因为它无论如何都是不一致的。