关闭工作簿时下标超出范围

时间:2019-07-29 12:11:06

标签: excel vba

我写了一个宏来循环浏览文件夹中的文件,将一些数据从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之前关闭

我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

在遵循上面评论中的良好建议之后,最好使用完全符合WorkbooksWorksheetsRanges且不依赖{{1 }}。

修改后的代码

Selection