Встроенные диалоговые окна Excel
Вопрос
Кто-нибудь знает, как вызвать import data
встроенный диалог excel из макроса (vba)?
Я пытался Application.Dialogs.Item(...).Show
но я не могу найти нужный диалог.Пожалуйста, помогите.
Заранее благодарю.
Решение
Самое близкое, что я могу найти, используя диалоговую систему, это:
Application.Dialogs(xlDialogImportTextFile).Show
Вы можете получить ссылку на кнопку командной строки (по крайней мере, для меня как в 2k3, так и в 2k7) через:
Set button = Application.CommandBars.FindControl(ID:=6262)
Но призывая к Execute
метод на кнопке завершается с ошибкой.К сожалению, короткий ответ, по-видимому, заключается в том, что это невозможно.
Вы можете добавлять объекты, подлежащие запросу, вручную.Хотя это и не оптимальный путь, вы могли бы создать свой собственный простой интерфейс для выбора исходных данных.
Другие советы
Если вы выберете обозреватель объектов и выполните поиск, скажем, xlDialogImportTextFile, вы получите список возможных диалоговых окон.
Редактировать:Возможно, что-то в этом роде подошло бы:
'Allow user to select text file
sf = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If sf <> False Then
'Open text file
Workbooks.OpenText sf
End If
Я не думаю, что существует эквивалент VBA, потому что в одном случае вы возвращаете данные на рабочий лист, в то время как в другом случае данные помещаются в набор записей в памяти.
Однако этот клудж должен открыть для вас диалоговое окно:
SendKeys "%ddd"