繁体   English   中英

将工作簿设置为全局变量 - 下标超出范围

[英]Setting workbook as a global variable - Subscript out of range

全部,

我有以下代码,使用户能够选择要打开的工作簿。 我希望稍后通过整个自动化过程中的全局变量在自动化过程中将这些工作簿作为目标,但是当我尝试这样做时,我遇到了超出范围的下标。

请看下面的代码:

Dim FnameAndPath As Variant
Dim ATMFNameAndPath As Variant

Sub GetUserToSelectFile()

MsgBox "Please select the daily reconciliation file"

FnameAndPath = Application.GetOpenFilename(Title:="Select File To Be Opened")
If FnameAndPath = False Then Exit Sub
Workbooks.Open Filename:=FnameAndPath

MsgBox "Please select the file with the correct ATM details on"

ATMFNameAndPath = Application.GetOpenFilename(Title:="Select ATM File To Be Opened")
If ATMFNameAndPath = False Then Exit Sub
Workbooks.Open Filename:=ATMFNameAndPath

ans = MsgBox("Please confirm the below is correct" & vbNewLine & vbNewLine & " BankRec Filelocation = " & FnameAndPath & vbNewLine & vbNewLine & " ATM File location = " & ATMFNameAndPath, vbYesNo, "Confirmation correct files selected")

If ans = vbNo Then
    MsgBox "The macro will abort"
    MsgBox FnameAndPath
    Workbooks(FnameAndPath).Close    'ERROR Line
    Workbooks(ATMFNameAndPath).Close 'Error Line
        End
    End If

End Sub

请有人建议我如何在以后的自动化中定位工作簿 - 当我尝试关闭工作簿时,当前出现错误。

任何帮助将非常感激。

当您打开一个工作簿时,您需要指定文件的完整路径(或接受当前的默认路径)——所以 FnameAndPath 就是这样。 但是当您使用 Workbooks(name) 引用特定的打开工作簿时 - 您应该只提供名称,而不是完整路径。 试试这个而不是

    Workbooks.Open Filename:=FnameAndPath

尝试

    Dim wbRecFile as Workbook
    Set wbRecFile = Workbooks.Open(Filename:=FnameAndPath)  'note brackets

然后你可以做

    sbRecFile.Close

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM