Вот способ вернуть имя выбранного пользователем листа:
varCellContent = Application.InputBox _
(prompt:="Choose a sheet by clicking on any cell in it.", Type:=8)
strDestinationSheetName = ActiveSheet.Name
Как вернуть путь к выбранному пользователем файлу, уже объяснялось в ответах на предыдущий вопрос . С объектом FileDialog
или, если он вам не нравится, с GetOpenFilename
:
strPathOfFileToOpen = _
Application.GetOpenFilename("Excel workbooks (*.xls), *.xls")
Теперь FileDialog
или GetOpenFilename
вернет путь к открываемому файлу, например, "\\Folder\ImportFile_2011.04.05.xls"
, но они не фактически откроют файл. Вы должны использовать возвращаемый путь соответствующим образом. Из вашего вопроса не ясно, что это такое, но я бы догадался:
.SourceDataFile = strPathOfFileToOpen
и / или * * тысячу двадцать-один
Data Source=strPathOfFileToOpen ; _
Я не совсем уверен, почему у вас нет кавычек вокруг последнего в вашем вопросе.
Та же логика с именем листа: я указал, как его вернуть, но без подробностей не могу сказать, как его использовать.