Вопрос

Кто-нибудь знает, как вызвать 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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top