Workbook.Close() 会导致"Run-time error 9"



我对VBA有点陌生,我正试图使Sub()从不同的Excel工作簿中读取数据。它的工作原理是打开工作簿,从中读取,然后我想再次关闭工作簿。最后一部分是导致以下错误的原因:

运行错误'9':

下标超出范围

我不明白为什么我得到这个错误,当我试图关闭一个文件。我希望你们能帮忙。如果我注释掉Close()部分,它可以工作…

Option Explicit
Sub Test()
    Dim Path, Filename
    Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet, transmitWorkbook As Workbook, revieveWorkbook As Workbook
    'Define a variable for the workbook which is to recieve data
    Set revieveWorkbook = ActiveWorkbook
    Path = "C:Test Folder"
    Filename = "FileToReadFrom.xlsx"
    'Open workbook which is to transmit, if its not already open
    If Is_WorkBook_Open(Path & Filename) Then
        Set transmitWorkbook = Workbooks(Path & Filename)
    Else
        Set transmitWorkbook = Workbooks.Open(Path & Filename)
    End If
    revieveWorkbook.Sheets(1).Range("A1").Value = transmitWorkbook.Sheets(2).Range("F9").Value
    revieveWorkbook.Sheets(1).Range("B1").Value = Month(transmitWorkbook.Sheets(2).Range("H9").Value)
    Workbooks(Path & Filename).Close SaveChanges:=False

End Sub

正如jeep在评论中提到的,路径名不会用于再次关闭工作簿。正确的代码是

Workbooks(Filename).Close SaveChanges:=False

感谢大家的帮助。

相关内容

最新更新