Я пытаюсь создать блок кода, который позволяет получить имя неизвестной книги и справочные данные из нее. Ссылки по номеру индекса не кажутся приемлемым вариантом, так как у пользователей часто есть другие книги одновременно. Неизвестная книга уже открыта, но мне нужно получить ее имя. Я использую 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