我写了一个宏来循环浏览文件夹中的文件,将一些数据从1选项卡复制到另一个工作簿中。然后,我想在打开下一个工作簿之前关闭循环的工作簿,但是在尝试关闭工作簿时收到下标超出范围的错误。
我正在使用Office 365的桌面版Excel。
在下面的代码中,我在尝试执行Workbooks(currentFile).Close
时收到运行时错误9:下标超出范围错误
currentFile
变量在代码中进一步处理以打开文件。
我尝试将其设置为:
Workbooks(currentFile).Activate
ActiveWorkbook.Close
但是我得到同样的错误
'setup FSO
Dim folderName As String
Dim FSOLibrary As Object
Dim FSOFolder As Object
Dim FSOFile As Object
'Use For Each loop to loop through each file in the folder
For Each FSOFile In FSOFile
'actions to be performed on each file
currentFile = FSOFile
'go to Full Raw tab
Workbooks.Open (currentFile)
Worksheets("Full Raw").Range("A1").Select
'select everything & copy
Selection.End(xlDown).Select
ActiveCell.Resize(1, 15).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.Copy
'go to combining workbook
Workbooks("" & txn_month & "_" & Year(Date) & "").Activate
'go to bottom of data
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'paste copied data
ActiveCell.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'close working file
Workbooks(currentFile).Close
Next
我希望每个FSOFile都可以打开,执行操作,然后在选择下一个FSOFile之前关闭
我要去哪里错了?
答案 0 :(得分:0)
在遵循上面评论中的良好建议之后,最好使用完全符合Workbooks
,Worksheets
和Ranges
且不依赖{{1 }}。
修改后的代码
Selection