Pergunta

Alguém sabe como chamar a import data built-in excel de diálogo a partir de uma macro (VBA)?

Eu tentei Application.Dialogs.Item(...).Show mas não posso encontrar a janela direita. Por favor, ajuda.

Agradecemos antecipadamente.

Foi útil?

Solução

O mais próximo que pode encontrar usando o sistema de diálogo é:

Application.Dialogs(xlDialogImportTextFile).Show

Você pode obter uma referência para o botão da barra de comando (pelo menos para mim, tanto 2k3 e 2k7) via:

Set button = Application.CommandBars.FindControl(ID:=6262)

Mas chamar o método Execute no botão falhar. Infelizmente, a resposta curta parece ser que não é possível.

Você pode adicionar objetos QueryTable à mão. Embora não seja um caminho ideal, você poderia projetar seu próprio interface simples para selecionar os dados de origem.

Outras dicas

Se você escolher o localizador de objectos e procurar digamos, xlDialogImportTextFile, você receberá uma lista de possíveis diálogos.

EDIT: Talvez algo sobre estas linhas serviria:

'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

Eu não acho que há um equivalente VBA, porque em um caso você estiver retornando dados para uma planilha, enquanto no outro caso, os dados são colocados em um conjunto de registros na memória.

Esta kludge deve aparecer a caixa de diálogo para você, no entanto:

SendKeys "%ddd"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top