引用带有字符串变量的工作簿

时间:2020-01-29 12:50:39

标签: excel vba string

我正在尝试创建一个代码块,以使该代码块可以接收未知工作簿的名称并从中引用数据。通过索引号进行引用似乎不是一个可行的选择,因为用户经常会同时出其他工作簿。未知的工作簿已经打开,但是我需要检索其名称。我正在使用FileDialog允许用户选择所需的工作簿,将文件路径另存为字符串,然后使用它来引用工作簿。

当我尝试引用工作簿时,出现下标超出范围错误。直接输入工作簿名称而不是变量即可,但是尝试使用变量无效。我尝试使用引号,无引号和双引号,但是错误仍然相同。

这是我的代码。我到底在做什么错?

Sub ObtainExternalWorkbook()

'Declare variables
    Dim filepath As String
    Dim WK As FileDialog
    Set WK = Application.FileDialog(msoFileDialogFilePicker)

'Acquire file name.
  MsgBox ("Please select the desired file to be used.")
        With WK
            .AllowMultiSelect = False
            .Title = "Select the desired file."
            If .Show = False Then
                Exit Sub
            End If
        filepath = .SelectedItems.Item(1)
        End With


'Use file name to activate workbook.
    Workbooks(" & filepath & ").Activate
End Sub

1 个答案:

答案 0 :(得分:1)

考虑到您说工作簿已经打开,必须激活该情况,问题出在您的变量filepath上。这将返回完整的路径和名称。 This SO post为您提供了仅提取文件名和扩展名的功能。

在选择文件后尝试通过该函数填充filename变量,然后Workbooks(filename).Activate应该可以工作。