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